Reconocer el código original, el código inverso y el código complementario

Prefacio

En el mundo de la informática, todos los datos existen en última instancia en forma binaria. Por ejemplo, los números decimales que se utilizan en nuestras vidas humanas se pueden convertir en binarios de acuerdo con ciertas reglas de almacenamiento. Además, hay octales y hexadecimales. Convertidos a binarios.

¿Muchos otros caracteres como signos de puntuación, letras y chino son como se representan en la computadora? Una tabla de códigos se almacena dentro de la computadora, y diferentes números binarios corresponden a un solo carácter, como 0100 0001, esta cadena de números representa letras mayúsculas UNA.

Entonces, ¿cómo almacena la computadora las imágenes y los videos? Una imagen se compone de muchos píxeles en la pantalla, y cada píxel se puede representar con un número binario. Por ejemplo, un número binario de 4 bits representa un píxel. Luego hay 8 combinaciones de números binarios de 4 bits, y el píxel también puede representar ocho colores. Si se utiliza un byte (número binario de 8 bits) para representar un píxel, entonces cada píxel tiene un total de 256 tipos. píxeles y más densos, más rico es el color de la imagen y más claro es el efecto final El video está formado por la reproducción rápida de la imagen, y el principio es similar.

En la descripción general anterior, se puede ver que la capa inferior de la computadora puede representar todo con solo los números binarios compuestos por 0 y 1, y binario es un montón de números después de todo, y las operaciones aritméticas se pueden realizar por números. Tenemos información enorme y compleja hoy. El funcionamiento de la base de la sociedad se ha transformado en un montón de cálculos de dígitos binarios. Esto muestra cuán importantes son los cálculos binarios.

 

Conversión base

 

Convertir decimal a binario

 

La conversión de un entero decimal a un entero binario adopta el método de "dividir por 2 y tomar el resto, y ordenar en orden inverso". Divida el decimal por 2 para obtener el cociente y el resto; divida el cociente por 2 nuevamente para obtenga un cociente y un resto, y hágalo hasta que el cociente sea menor que 1. Hasta ahora, el último cociente se combina gradualmente con el resto de abajo hacia arriba. El número decimal 173 se convierte al número binario 010101101, y el primer 0 puede omitirse. De la siguiente manera:

                                            

                                             

 

Convertir binario a decimal

 

  • Primero escriba los números binarios como expansiones de coeficientes ponderados y luego súmelos de acuerdo con las reglas de suma decimal. Este método se llama método de "suma por potencia"
  • Por ejemplo, 1101, el coeficiente de ponderación correspondiente al primer lugar en el extremo derecho es la potencia cero de 2, el segundo lugar es la primera potencia de 2, y el tercer lugar es la segunda potencia de 2, y así sucesivamente.
  • Cada número se multiplica por su factor de ponderación y se suma para obtener la suma igual al valor del número decimal.
  • 1 * 2 ^ 3 + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^ 0 = 8 + 4 + 0 + 1 = 13

 

Codigo original

Hace décadas, muchos científicos en los campos militar y aeroespacial necesitaban realizar cálculos a gran escala de grandes números, como cuántas decenas de millones por cuántas decenas de millones. Los cálculos artificiales de estos números no solo son propensos a errores sino también muy ineficiente. Computadoras, por lo tanto, nació. El propósito de su nacimiento es ayudar a los humanos a calcular rápidamente el resultado. Si necesitamos crear una computadora ahora, ingresamos la suma decimal 10 + 10 para ella, y debería devolver un resultado de 20, entonces, ¿cómo se logra este proceso?

  • Primero convertirá 10 en un número binario 0000 1010
  • Agregue dos dígitos binarios para obtener el resultado 0001 0100 y luego conviértalo a decimal para que sea igual a 20. 
  •  

       

A partir del proceso de cálculo anterior, se puede ver que la computadora que creamos actualmente no tiene ningún problema con la suma. El problema de la suma está resuelto, y hay otro problema. En nuestro sistema decimal de uso común, los números se dividen en sumas positivas. Negativo como +10 y -10, entonces, ¿cómo se indica si un número es positivo o negativo en binario?

En el sistema decimal, usamos + para representar números positivos y-para representar números negativos. De manera similar, en binario, 0 puede representar + y 1 puede representar -. Por ejemplo, un número binario de 8 bits 0000 0001. El bit más alto es el octavo bit como bit de signo., 0 ​​significa un número positivo y 1 significa un número negativo. Por lo tanto, 0000 0001 es equivalente al decimal +1. Y 1000 0001 significa decimal -1. Los datos binarios definidos en este método se denominan original código.

Ahora hemos creado un método de codificación llamado código original. Está bien usar los datos binarios representados por el código original para realizar operaciones de suma, y ​​también puede representar números positivos y negativos. Dado que puede representar números negativos, probemos el operación de resta.

         

  • 0000 0001 es igual al decimal +1 y 1000 0001 es igual al decimal -1.1 + (-1) es equivalente a 1-1

  • El resultado de 1-1 es igual a 0, pero el resultado del cálculo binario es 1000 0010, que es igual a -2 en decimal El resultado del cálculo es obviamente incorrecto.

  • Se revelan los inconvenientes de este código original. Solo se puede usar para sumar, pero no para restar. Entonces, ¿para qué sirve? Entonces, a continuación, necesitamos encontrar un nuevo método de codificación que permita usar números binarios para sumar y resta.

 

Derivación del complemento

Ahora necesitamos encontrar un nuevo método de codificación para permitir la resta binaria. Podemos comenzar con el proceso de operación más esencial de las matemáticas para ver si podemos encontrar la ley. Por ejemplo, la operación decimal 100-10 se puede operar de la siguiente manera :

100 -10 = 

100 -10 + 100 -100 = 

100 - 10 + 99 + 1 - 100 = 

100 + (99 - 10) + 1 - 100
  • 100-10 es equivalente a 100 + (-10), -10 se convierte en (99-10) + 1, ¿cuáles son los beneficios de hacer esto? 10 es un número de dos dígitos y 99 es el número más grande de dos -dígitos. Si los dígitos de los dos números son iguales y el número restado es el número más grande, entonces esta resta no se llevará a cabo. La razón por la cual la resta es problemática es porque el número decimal debe tomarse prestado del anterior Ahora se convierte en este La forma evita pedir prestado.
  • La clave para hacer una resta para evitar tomar prestados es ver cuántos dígitos hay en la resta y sumar un número que sea un poco más grande que el número de dígitos en la resta. Por ejemplo, si la resta es 10, luego sume 100 después. Reste 100. Si la resta es 100, sume 1000 al final y luego reste 1000.
  • 100 se puede convertir a 99 + 1, por lo que -10 se convierte en (99-10) + 1
  • Se puede obtener algo de iluminación con el proceso de derivación anterior. Si un número es positivo, como 100, entonces sigue siendo 100 sin ningún procesamiento. Pero si un número es negativo, como -10, se puede transformar en el número más grande. de dígitos en el número. Reste este número del número y sume 1.
  • ¿El número más grande menos un número como 99 -10 no es el complemento de 10? Y el complemento más 1 no es el complemento. Para aclarar más, convertimos el proceso de cálculo anterior en binario.
100 - 10 =

01100100 - 00001010 = 

01100100 - 00001010 + 100000000 - 100000000 = 

01100100 - 00001010 + 11111111 + 1 - 100000000 = 

01100100 + (11111111 - 00001010) + 1 - 100000000
  • A menudo hemos visto esta conclusión en libros de texto antes: el complemento a uno y el complemento de un número binario positivo son iguales al número positivo en sí mismo. El complemento a uno de un número binario negativo es igual al bit de signo sin cambios, y los otros bits son los resultado de la inversión de bits El complemento de un número binario negativo es igual al complemento del número negativo más 1.
  • Por ejemplo, 1000 1101, su código inverso se puede transformar así: el bit más significativo del bit de signo 1 permanece sin cambios, los otros bits son invertidos por el bit 1 para convertirse en 0, 0 se convierte en 1 y el resultado es igual a 1111 0010. Por ejemplo, un número sin signo de tres dígitos 001 it El resultado de la inversión de bits es 110. Entonces 111-001 es igual a 110. En otras palabras, el número más grande menos este número es su código inverso.
  • Miremos hacia atrás en el proceso de cálculo anterior (11111111-00001010) es el inverso de -00001010, y agreguemos 1 para convertirse en el complemento.

Continuar calculando

01100100 + (11111111 - 00001010) + 1 - 100000000 = 

01100100 + 11110110 - 100000000 = 

  • 01100100 + 11110110 = 1 01011010-100000000 = 01011010, convertido a decimal igual a 90, el resultado del cálculo es correcto.
  • El resultado del cálculo anterior de 01100100 + 11110110 produce un acarreo que cancela el siguiente 1 0000 0000. 0110 0100 es el complemento del decimal 100, y 1111 0110 es el complemento del decimal -10. Si un complemento positivo y uno negativo son comparado Suma, si genera un acarreo, el bit más alto es igual a 0, es un número positivo, el código original del número positivo = código inverso = complemento. El resultado de sumar los dos complementos anteriores es 1 0101 1010, que produce un Carry 1 (suponiendo que la unidad aritmética almacena hasta 8 bits) se desborda, y el resultado del descarte se convierte en 01011010. Es un número positivo, por lo que su código original es igual al complemento, y el tamaño decimal se puede calcular a partir de el código original.
  • Imagine una situación especial en la que la suma de dos complementos no produce un acarreo, entonces se supone que los datos obtenidos al sumar estos dos números son x, y el bit más alto de x debe ser 1. La conversión puede continuar más tarde. X- 1 0000 0000 = x- 1111 1111-1 = - (1111 1111-x + 1). X es definitivamente un número negativo, por lo que se propone el bit de signo y se suma el código de negación de x para obtener el valor final. aquí, el bit de signo se mantiene sin cambios y el complemento del complemento es su código original.

 

para resumir

1. A través de una exploración incesante en el mundo de las matemáticas, finalmente encontramos un método de codificación (es decir, código complementario) para lograr la resta. Ahora ingrese dos datos decimales en la computadora, como 100 -10, y espere que la computadora eventualmente return 90 Dámelo. Primero, calculará el complemento de 100 y el complemento de -10 respectivamente, y los sumará, y la suma seguirá siendo el complemento, y luego complementará el complemento para obtener el código original de los datos El valor decimal correspondiente también se puede calcular a través del código original, y este valor se puede devolver al usuario en este momento.

2. ¿Cómo encontrar el complemento de un dato binario?

Si el bit más alto de los datos binarios (forma de código original) es 0, entonces el dato es un número positivo Código de complemento = código inverso = los datos en sí.

Si el bit más alto de los datos binarios (en el formato de código original) es 1, entonces los datos son un número negativo. El bit de signo del bit más alto permanece sin cambios y los otros bits se invierten bit a bit. Suma 1 para obtener el complemento.

 3. El significado del complemento

El código original es amigable para los humanos. Podemos convertir fácilmente datos decimales en código original binario, y también podemos calcular los datos decimales correspondientes a través del código original. Aunque el código original es bueno, no puede hacer restas. Este es el complemento La razón del nacimiento del código. Para la computadora, el código original y el código inverso tienen poca importancia. Todos son para dar la bienvenida al nacimiento del complemento. Los datos binarios en la parte inferior de la computadora se almacenan en el forma del complemento, que puede ser más conveniente Realizar operaciones aritméticas. En este punto, también entendemos que al final, cualquier dato de entrada externo se convierte en un complemento en la computadora para el cálculo y almacenamiento, y el complemento es la representación de datos binarios.

 

 

 

Supongo que te gusta

Origin blog.csdn.net/brokenkay/article/details/107381271
Recomendado
Clasificación