Mostrando entradas con la etiqueta complemento a dos. Mostrar todas las entradas
Mostrando entradas con la etiqueta complemento a dos. Mostrar todas las entradas

30 de marzo de 2008

Otra manera de calcular el complemento a dos

Otra forma de calcular el complemento a dos de un número binario es comenzar por la derecha (dígito menos significativo), copiando el número original hasta que nos encontremos el primer "1" (que también compiaremos). A partir de este momento, donde veas un "1" pones un "0" y lo mismo para los "0" que cambiarás por "1", es decir niegas los valores. Por ejemplo para el número 9, su complemento a dos utilizando este método sería:

1. Escribimos el valor en binario (utilizamos 8 bits): 00001001
2. Copiamos los dígitos desde la derecha hasta que encuentres un "1": ________1
3. Invertimos todos los valores y resulta: 11110111

El valor es: 247, que corresponde al complemento de 9, su valor negativo.

Visita Wikipedia para más información

Complemento a dos

Para calcular el complemento a 2 de un número tienes dos maneras, la más rápida es aplicando la siguiente fórmula: [2^N-número ]. Como trabajamos con números de 8 bits, N=8.

En uno de los ejercicios, teníamos la instrucción SJMP que desviaba la ejecución del programa 9 bytes hacia atrás, por eso había que codificar el valor en negativo (en complemento a dos).

Ejemplo: Codificar el valor 9 en complemento a dos.

Utilizando la fórmula 2^N-número, tenemos que 2^8 - 9 = 256-9 = 247 = F7h. Por lo tanto, el valor que hay que codificar en la instrucción de salto será 247, que corresponde al negativo del valor 9 (su complemento a dos). La instrucción quedaría como puedes ver en la siguiente figura (puedes codificar el valor en binario, decimal o hexadecimal):


Visita Wikipedia para más información