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. Al almacenar el código binario, hay código original, código inverso y código complementario. Por ejemplo: el código original de ingresar 25 es: 0000000000011001. código inverso :111111111111100110 Complemento: 111111111111100111 ~ El valor del número. 11111111111111100111 ~ Los valores numéricos se representan en las computadoras como números de máquina, que solo pueden reconocer 0 y 1, usando binario, mientras que en la vida diaria, la gente usa decimal ", como señaló Aristóteles hace mucho tiempo, el uso generalizado del decimal hoy en día es solo. Resultado del hecho anatómico de que la gran mayoría de nosotros nacemos con 10 dedos, aunque históricamente la práctica de contar los dedos (5, decimal) surgió mucho más tarde que el conteo binario o ternario". (Extraído de lt; lt; Historia de las Matemáticas gt; gt;, puedes leerlo cuando tengas tiempo ~, es muy interesante). Para facilitar la conversión a binario, se utilizan hexadecimal (2 4) y octal (23). Vayamos al grano. Los números pueden ser positivos o negativos, y las computadoras usan el bit más alto del número para representar el signo (0 para números positivos, 1 para números negativos). Este es el código original para los números de máquina. Supongamos que el número de bits que la máquina puede manejar es 8. Es decir, cuando la longitud de la palabra es 1 byte, el rango de valores que el código original puede representar es (-127~-0 0~127)***256. Los valores numéricos pueden estar sujetos a operaciones aritméticas. Sin embargo, la gente pronto se dio cuenta de que las operaciones de multiplicación y división con bits de signo son correctas, pero las operaciones de suma y resta tienen los siguientes problemas: Suponga que la longitud de la palabra es 8 bits (1) 10- (1)10 = (1)10 (-1 )10 = ( 0 )10 (00000001) valor original (10000001) valor original = (10000010) valor original = ( -2 ) es obviamente incorrecto. Obviamente esto es incorrecto. Como no hay problema en sumar dos números enteros, el problema radica en los números negativos con el bit de signo. El código inverso y el código original tienen el mismo espacio de valores y se corresponden entre sí. Aquí se explica cómo restar el código inverso: (1)10 - (1) 10= (1) 10 (-1) 10= (0)10 (00000001) Código inverso (11111110)inverso = (11111111)inverso = (-0 ) tiene una pregunta. (1)10 - (2)10 = (1)10 (-2)10 = (-1)10 (00000001) inversa(11111101)inversa = (11111110)inversa = (-1) El problema correcto es (0) y (-0), en el concepto de cálculo popular, no hay diferencia entre cero positivo y cero negativo. (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 contienen cero y han hecho grandes contribuciones a la civilización humana). Esto 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 a su complemento. Utilice (-128) en lugar de (-0) en el complemento, por lo que el rango de representación del complemento es: (-128~0~127)***256.
Nota: (-128) no tiene código original ni código de complemento (-128) = (10000000) Las operaciones de suma y resta del código de complemento son las siguientes: (1) 10 - (1) 10 = (1)10 (. -1)10 = ( 0 )10 (00000001)-complementado (11111111)-complementado = (00000000)-complementado = ( 0 ) Correcto ( 1 ) 10 - ( 2 ) 10 = ( 1 )10 ( -2)10 = ( 1 )10 ( - 2)10 = ( - )1 )10 El complemento de (00000001) El complemento de (11111110) = El complemento de (11111111) = ( -1 ) Correcto, entonces el propósito de diseño del complemento es : (1) Simplifique las reglas de operación. El bit de signo puede participar en la operación junto con la parte cuadrática media del valor.
Referencias:
Si te resulta útil, recuerda aceptarlo, ¡gracias! ¡Te deseo una vida feliz! vae.la