¿Cuáles son el número original, el inverso y el complemento de un número?
El método de representar números binarios en una computadora se llama codificación digital, mientras que el método de representar números y sus símbolos en una máquina se llama números de máquina. El número representado por el código de máquina se denomina valor verdadero del número. Para representar un código de máquina, se deben considerar los siguientes tres factores:
1. Rango del código de máquina
Cuando la longitud de la palabra es de 8 bits, el valor máximo de un entero sin signo es (1111111111) B=(255)D En este momento, el rango del código de máquina es 0~255.
Cuando la longitud de la palabra es de 16 bits, el valor máximo de un entero sin signo es
(1111111111111111111111) B=(FFFF) H=(65535) D. En este momento, el El rango de números de máquina es de 0 a 65535.
2. El signo de los números de máquina
En operaciones aritméticas, los datos se pueden dividir en positivos y negativos. Estos datos se denominan números con signo.
Para representar correctamente los números con signo en las computadoras, generalmente se especifica que el bit más alto de cada longitud de palabra sea el bit de signo, donde 0 representa números positivos y 1 representa números negativos.
3. La posición del punto decimal en el número de máquina
En el número de máquina, suelen existir dos convenciones para la posición del punto decimal:
> Se estipula la posición del punto decimal: Fijo, el número de máquina se denomina "número fijo".
Otra estipulación es que la posición del punto decimal puede flotar, por lo que el número de máquina se denomina "número de punto flotante".
4. Código original
El bit de signo de un número positivo es 0, el bit de signo de un número negativo es 1 y los demás bits representan el valor absoluto del número según al método general. El número obtenido mediante este método de representación es el código original.
Ejemplo 1 Cuando la longitud de la palabra de la máquina es un número binario de 8 bits:
X = 1011011 [X] Código original = 01011011
Y = 1011011 [ Y] Código fuente = 11011011
[ 1] Código fuente = 00000001 [-1] Código fuente = 10000001
[ 1] Código fuente = 00000001 [-1] Código fuente = 10000001 p>
[ 1] Código fuente = 10000001
[ 1] Código fuente = 10000001
[ 1] Código fuente = 10000001
[ 1] Código original = 10000001 [-1] Código original = 10000001 10000001
[ 127]Código original = 01111111 [-127]Código original = 11111111
El rango de números enteros representado por el código original es:
-(2n-1-1) ~ (2n-1-1), donde n es la longitud de la palabra de la máquina.
Entonces: el rango de enteros representado por el código fuente binario de 8 bits es -127~ 127
El rango de enteros representado por el código fuente binario de 16 bits es -32,767~ 32,767
p>5. Código complemento a uno
Para números con signo, el complemento a uno de los números positivos es el mismo que el código original, y el complemento a uno de los números negativos es el complemento a uno del código original excepto el bit de signo.
Ejemplo 2.14 Cuando la longitud de la palabra de la máquina es un número binario de 8 bits:
] Código original = 010110111011011 [Y] Código original = 11011011 [Y] Código negativo = 10100100
[ 1 ] Código negativo = 10100100
[ 1] Código negativo = 0100100
[ 1] Complemento a uno = 0100100
[ 1] Complemento a uno = 0100100
[ 1] Complemento a uno = 0100100
[ 1 1] Código inverso = 00000001 [-1] Código inverso = 11111110
[ 127] Código inverso = 01111111 [- 127] Código inverso = 10000000
El código inverso de un número negativo es completamente diferente del número original, en el proceso de encontrar el código complemento, el recíproco se suele utilizar como forma intermedia. El código inverso de un número negativo es completamente diferente del número negativo original. El rango de números enteros representado por el código inverso es el mismo que el del código original.
6. Código complemento
El código complemento de un número positivo es el mismo que el código original, y el código complemento de un número negativo es el código inverso del código original más 1 en el bit más bajo.
Ejemplo 2 (1) 01011011.01011011
(2) Según la definición: [Y]prime = 11011011 [Y]inverse = 10100100
[Y] complemento = 10100101
Representado por el código complementario. El rango de enteros es -2n-1~ (2n-1-1), donde n es la longitud de la palabra de la máquina.
Entonces: el rango de enteros representado por el complemento a dos de 8 bits es -128~ 127
El rango de enteros representado por el complemento a dos de 16 bits es -32768~ 32767 p>
Cuando el resultado de la operación excede este rango, no se puede representar correctamente, lo que se llama desbordamiento.
7. Conversión entre complemento y valor verdadero
El valor verdadero del complemento positivo es igual al complemento mismo cuando el complemento negativo se convierte en un valor verdadero, el complemento negativo; consta de bits El recíproco de significa que al sumar 1 al final del bit, se obtiene el complemento negativo correspondiente al valor absoluto del valor verdadero.
Ejemplo 3 Código de complemento [X] = 01011001B, Código de complemento [X] = 11011001B, encuentre el valor verdadero de X respectivamente.
(1) El número representado por el complemento [X] es un número positivo y su valor verdadero es:
X = 1011001B
= (1 × 26 1 × 24 1 × 23 1 × 20)
= (64 16 8 1)
= (89)D
(2)[X ] El verdadero valor del número representado por el complemento de es un número negativo:
X = -([1011001] Inverso 1)B
= -(0100110 1)B
= -(0100111)B
= -(1×25 1×22 1×21 1×20)
= -(32 4 2 1)
= -(39)D