Rango de conversión y representación de código original, código inverso y código complementario
1. Código original
El código original de un número se convierte directamente en un número binario, y el primer bit es el bit de signo.
2. Código complemento a uno
El complemento a uno de un número positivo es él mismo; el complemento a uno de un número negativo es el código original, excepto que el bit de signo no se mueve y los otros bits se invierten poco a poco.
3. Código complemento
El código complemento de un número positivo es él mismo; el código complemento de un número negativo es el código inverso más uno (incluido el bit de signo).
Por lo tanto, el complemento original y el complemento negativo de números positivos son iguales, y el complemento original y el complemento negativo de números negativos se convierten entre sí.
Ejemplo:
La computadora almacena y calcula 8-5. Debido a que la CPU tiene un solo sumador, 8-5 debe convertirse en 8 (-5) para el cálculo.
(8)
El código original de 8:0000 1000
El código del complemento de 8:0000 1000
El código del complemento de 8: 0000 1000
(-5)
El código original de -5: 1000 0101
El complemento de -5: 1111 1010
El complemento de -5: 1111 1011
8 - 5 = 8 (-5) = 0000 1000 1111 1011 = 0000 0011
El bit de signo de 0000 0011 es 0, que significa número positivo, el complemento a uno original es el mismo y después de la conversión a decimal es 3.
Por tanto, en los ordenadores los datos se representan y almacenan como complemento de los datos.
Por ello, los datos se representan y almacenan en los ordenadores en forma de códigos en complemento a dos, que además son más fáciles de calcular.
2. El rango de representación del código original, el código inverso y el código complementario.
La longitud general de la palabra de la computadora es de 32 bits, es decir, el número de representación binaria de 32 bits. :
Código original: -[2^(n-1)-1] ~ 2^(n-1) - 1
Código inverso: -[2^(n- 1)-1] ~ 2^( n-1) - el complemento de 1
: -2^( n-1) ~ 2^(n-1) - el complemento de 1