Red de conocimientos turísticos - Conocimientos sobre calendario chino - Cómo calcular el código original, código inverso y complemento de un número

Cómo calcular el código original, código inverso y complemento de un número

El sistema de almacenamiento de la computadora se almacena en binario. Cada pieza de información que ingresamos se convertirá automáticamente a formato binario, y el código original, el código inverso y el código complementario se obtendrán en el almacenamiento binario.

Por ejemplo: ingrese 25

El código original es: 0000000000011001

Código inverso: 1111111111100110

Complemento: 1111111111100111

~.1111111111100110

Complemento: 111111111111 11100111

~

Los valores numéricos existen en forma de números de máquina en las computadoras, mientras que en la vida diaria las computadoras solo pueden reconocer 0 y 1. la gente usa decimal, "al igual que Ari. Como señaló Aristóteles hace mucho tiempo, la adopción generalizada del sistema decimal es simplemente el resultado del hecho anatómico de que la gran mayoría de nosotros nacemos con diez dedos. Históricamente contar con los dedos (5, 10) apareció más tarde que el conteo binario o ternario, pero este hecho aún existe). Para facilitar la conversión a binario, se utilizan hexadecimal (2 4) y octal (23). Empecemos.

Los valores numéricos se dividen en números positivos y negativos, y la computadora usa el bit más alto del número para representar el signo (0 representa un número positivo, 1 representa un número negativo). Este es el código original para los números de máquina. Suponiendo que la cantidad de bits que la máquina puede procesar es 8, es decir, la longitud de la palabra es 1 byte, el rango de valores que puede representar el código original es

(-127 ~ -0 0 ~ 127 )***256.

Usa la representación numérica para realizar operaciones aritméticas con números. Pero pronto descubrimos que usar el código original con bit de signo para multiplicación y división daría resultados correctos, pero la suma y resta causarían problemas, como sigue: Supongamos que la longitud de la palabra es de 8 bits

( 1 ) 10 - ( 1 )10 = ( 1 )10 ( -1 )10 = ( 0 )10

(00000001)original (10000001)original = ( 10000010)original = ( -2 ) Obviamente no es correcto.

Dado que no hay problema en sumar dos números enteros, se descubre que el problema radica en el número negativo con el bit de signo, y el código inverso de cada bit excepto el bit de signo producirá el código inverso. El código inverso y el código original tienen el mismo espacio de valores y se corresponden entre sí. La siguiente es la operación de resta del código inverso:

(1)10 - (1) 10= (1) 10 (-1) 10= (0)10

( 00000001) Inversa (11111110)inversa = (11111111)inversa = ( -0 ) Hay un problema.

( 1 )10 - ( 2 )10 = ( 1 )10 ( -2 )10 = ( -1 )10

(00000001) inversa (11111110) inversa = (11111110 )inverso = (-1) es correcto

El problema ocurre en (0) y (-0). En el concepto de cálculo de las personas, no hay diferencia positiva o negativa entre 0. (Los indios fueron los primeros en utilizar el cero como marca y escribirlo en la aritmética. Las matemáticas indias y el conteo decimal incluían el cero e hicieron grandes contribuciones a la civilización humana).

Se introduce el concepto de complemento. El complemento de un número negativo consiste en sumar 1 al recíproco del número negativo, mientras que el número positivo permanece sin cambios y el recíproco de un número positivo es igual al complemento del número original.

En el código de complemento, se usa (-128) en lugar de (-0), por lo que el rango del código de complemento es:

(-128~0~127)***256.

Nota: (-128) no tiene número original correspondiente ni recíproco, (-128) = (10000000) Las operaciones de suma y resta de números complementarios son las siguientes:

( 1 ) 10 - ( 1 ) 10 = ( 1 )10 ( -1 )10 = ( 0 )10

(00000001)- complemento (11111111)- complemento = (00000000)- complemento = (0)10

(00000001)-complemento (11111111)-complemento = (0)10

(00000001)-complemento (11111111)-complemento = (00000000)complemento = (0) correcto

( 1 ) 10- ( 2 ) 10= ( 1 )10 ( -2 )10 = ( -1 )10

(00000001)complemento (11111110)complemento = (11111111) complemento = ( - 1) Correcto

Por lo tanto, el propósito de diseño del código de complemento es:

(1) Permitir que el bit de signo participe en la operación junto con la parte de valor significativo , simplificando así las reglas de operación.

(2) Convertir operaciones de resta en operaciones de suma, simplificando aún más el diseño del cableado de los operadores en la computadora

Todas estas conversiones se completan en el nivel más bajo de la computadora, mientras que en otros En lenguajes de alto nivel (como el lenguaje ensamblador y C que usamos), se usa código original

="text/javascript" src="../css/tongji.js">