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
Apuntes teoría sensores y material de prácticas para la asignatura del curso Informática Industrial
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
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):

Suscribirse a:
Entradas (Atom)