Red de conocimiento informático - Conocimiento de Internet de las cosas - Código fuente decimal al complemento a uno

Código fuente decimal al complemento a uno

Explíqueme en detalle: código original, código complementario, código inverso.

(1) Representación del código original

La representación del código original es una representación simple del número de máquina. Su bit de signo usa 0 para representar un signo positivo y: para representar un signo negativo. El valor generalmente se representa en binario. Si un número se establece en x, la representación del código original se puede registrar como [x] original.

Por ejemplo, x 1 = 1010110.

X2=a 1001010.

El registro de código original es:

[x 1]Original =[ 101165438]Original = 0101010.

[[X2]Original=[-1001010]Original=110010.

El rango de números representado por el código original está relacionado con el número de dígitos binarios. Cuando el código fuente decimal está representado por binario de 8 bits, su rango de representación es:

El valor máximo es 0,11111 y su valor verdadero es aproximadamente (0,99)10.

El valor mínimo es 1,11111 y su valor verdadero es aproximadamente (0,99)10.

Cuando se utiliza binario de 8 bits para representar el código original de un número entero, su rango de representación es:

El valor máximo es 0111111 y su valor verdadero es (127)10.

El valor mínimo es 1111111 y su valor verdadero es (-127) 10.

En la representación del código original, 0 tiene dos representaciones:

[ 0] Original =00000000

[-0] Original =10000000

(2) Código de complemento

El código de complemento del número de máquina se puede obtener del código original. Si el número de máquina es positivo, su complemento es el mismo que el código original; si el número de máquina es negativo, el complemento del número de máquina se obtiene invirtiendo cada bit de su código original (excepto el bit de signo) y sumando 1 al faltante. bits obtenidos en. Si se establece un número x, la representación en complemento de x se registra como complemento [x].

Por ejemplo, [x 1] = 1010110.

[X2]=a 100101065438.

[x 1]Original = 010101165438.

[x 1]complemento = 010101110

Es decir, [x 1]original = [x 1]complemento = 01010110.

[X2]Original=1100101065438.

[X2] Código complemento = 1010101 1 = 1011010.

El rango de números de representación del complemento está relacionado con el número de dígitos binarios. Cuando se utiliza representación binaria de 8 bits, el rango de representación del complemento decimal es:

El valor máximo es 0,11111 y su valor verdadero es (0,99)10.

El valor mínimo es 1.0000000 y su valor verdadero es (a 1)10.

Cuando se utiliza representación binaria de 8 bits, el rango de representación del complemento entero es:

El valor máximo es 0111111 y su valor verdadero es (127)10.

El valor mínimo es 1000000 y su valor verdadero es (a 128)10.

En la representación en complemento a dos, solo hay una representación para 0:

[0]Código complementario=00000000

[0]Código complementario=111111 1 = 000000 (el último bit de acarreo se pierde debido a limitaciones de longitud de palabra del dispositivo).

Entonces hay [0] complemento = [0] complemento = 00000000.

(3) Representación del código inverso

El código inverso del número de máquina se puede obtener del código original. Si el número de máquina es positivo, el código inverso del número de máquina es el mismo que el código original; si el número de máquina es negativo, se toman los bits del código original (excepto el bit de signo) y se toma el código inverso.

Si se establece el número x, la representación anticódigo de x se registra como [x]anti.

Por ejemplo: x 1 = 1010110.

X2=a 1001010.

[x 1]Original = 01010110.

[x 1]anti=[x 1]original=01010110.

[X2]Original=1100101065438.

[X2]anti=10110101.

El complemento de un número negativo se suele obtener sumando 1 a los bits que faltan del complemento del número negativo.

Ejemplo 1. Se sabe que [X] es original = 10011010, encuentre el complemento de [X].

El análisis es el siguiente:

El principio para encontrar el complemento [X] a partir de la primitiva [X] es: si el número de máquina es positivo, entonces la primitiva [X] = [X] ] complemento; si el número de máquina es negativo, el complemento del número de máquina se puede encontrar negando todos los bits de su código original (excepto el bit de signo) y sumando 1 a los bits que faltan. Ahora el número de máquina dado es un número negativo, por lo que hay complemento [X] = [X] original diez 1, es decir

[X] original = 10011010

[X] anti = 11100101

X) 1

[X] complemento = 11100110

Ejemplo 2. Dado el complemento de [X] = 11100110, encuentre el origen de [X].

El análisis es el siguiente:

Si el número de máquinas es un número positivo, entonces [x] es el complemento original = [x].

Si el número de máquinas es negativo, entonces hay [x] original = [[x] complemento]

Ahora el número dado es negativo, por lo que quedan:

[X]complemento = 11100110

[[X]complemento]anti = 10011001

X) 1

[[x]complemento]anti = 10011010 =[x]Original

O:

En las computadoras, los números se representan en forma binaria.

Los números se dividen en números con signo y números sin signo.

El código original, el código complementario y el código complementario son representaciones de punto fijo con signo.

El bit más alto de un número de coma fija con signo es el bit de signo, 0 es positivo y 1 es negativo.

Tomemos un entero de 8 bits como ejemplo.

El código fuente es la forma binaria del propio número.

Por ejemplo

0000001 es 1.

100001 es -1.

El complemento a dos y el complemento a dos de un número positivo son iguales que el código original.

La inversión de un número negativo es la inversión de cada bit de su código original excepto el bit de signo.

[-3]anti=[1000011]anti=111100.

El complemento de un número negativo consiste en invertir cada bit del código original excepto el bit de signo y luego sumar 1 al último bit.

[-3] complemento = [1000011] complemento = 11111.

Un número y su complemento son reversibles.

¿Por qué necesitamos configurar el código del complemento?

La primera es dejar que la computadora realice la resta:

[a-b] complemento = complemento (-b) complemento

La segunda razón es Unificar positivo 0 y negativo 0.

Cero positivo: 00000000

Cero negativo: 1000000

Estos dos números son en realidad 0, pero sus códigos originales tienen representaciones diferentes.

Pero sus complementos son iguales, ambos 000000000.

¡Especial atención, si hay un acarreo después del 1, se debe realizar un acarreo, incluyendo el bit de signo! (¡Esto es diferente del anticódigo!)

[1000000]Suplemento

= [1000000] anti 1

=11111111 1

=(1)00000000

=00000000 (el bit más alto se desborda y el bit de signo pasa a 0)

Alguien puede preguntar

¿Qué número complementa? de 1000000 representan?

De hecho, esto es una regla. El significado de este número es -128.

Por tanto, el rango que puede representar el complemento de N bits es

-2 (n-1) a 2 (n-1)-1.

Un número más de los que puede representar el código original de N dígitos.

Otro ejemplo:

1011

Código original: 01011

Código inverso: 01011 //Número positivo, código inverso = código original .

Código complemento: 01011 //Número positivo, código complemento = código original.

-1011

Código original: 11011

Código inverso: 10100 //Número negativo, el código inverso es el inverso del código original.

Código de complemento: 10101 //Cuando el número es negativo, el código de complemento es 1 a partir del código original.

0.1101

Código original: 0.1101

Código inverso: 0.1101 //Número positivo, código inverso = código original.

Código complemento: 0.1101 //Número positivo, código complemento = código original.

-0.1101

Código original: 1.1101.

Código inverso: 1.0010 //Número negativo, el código inverso es el inverso del código original.

Código complemento: 1.0011 //Cuando el número es negativo, el código complemento es 1 del código original.

En los ordenadores, el punto fijo tiene tres representaciones: código original, código complemento y código complemento.

El llamado código original es la representación binaria de punto fijo mencionada anteriormente, es decir, el bit más alto es el bit de signo, "0" representa positivo, "1" representa negativo y los bits restantes Representa el tamaño del valor.

El código complemento significa que el código complemento de un número positivo es igual a su código original; la negación de un número negativo es la inversión bit a bit de su código original, excepto el signo; poco.

La representación en complemento especifica que el complemento de un número positivo es igual a su código original; el complemento de un número negativo es sumar 1 al último dígito de su complemento.

Supongamos que hay un número de tipo int con un valor de 5, entonces sabemos que se representa como:

00000000 00000000 00000000 00000101

5 se convierte en binario Es 101 en ese momento, pero el número de tipo int ocupa 4 bytes (32 bits), por lo que se completan un montón de ceros al frente.

Ahora quiero saber, ¿cómo representar -5 en la computadora?

En la informática, los números negativos se representan como sus complementos.

¿Qué es un complemento? Esto tiene que comenzar con el código original y el código inverso.

Código fuente: Un número entero, convertido en un número binario según su valor absoluto, se denomina código fuente.

Por ejemplo, 00000000000000000000000000000000000101 es el código original de 5.

Complemento a uno: se invierte el número binario bit a bit y el nuevo número binario se denomina complemento a uno del número binario original.

La operación de inversión significa: originalmente era 1 y obtuviste 0, originalmente era 0 y obtuviste 1. (1 a 0; 0 a 1)

Por ejemplo, invierta 000000000000000000000000000000001, De 1111111111654385438 011 11111010.

Pesaje: 111111111165438.

111 111101010000000000000000000000001065438.

El código inverso es mutuo, por lo que también se puede llamar:

11111111 11111111 1111165 438 011 1111010000000000000 000000000000001065438.

Código del complemento: el complemento El código más 1 que se llama es el código complementario.

En otras palabras, para obtener el complemento de un número, primero se obtiene el complemento, luego se suma 1 al complemento y el número resultante se llama complemento.

Por ejemplo: 00000000000000000000000000000000000001 el complemento de 1 es: 11111165438. 38 011 11111111 11111010.

Entonces, el complemento es:

11111111 11111111 1111165 438 011 11111010 1 = 11111111 1165438 011111 11111111 11111011

Entonces, -5 se expresa en la computadora como : 1 111111165438 . 8 01111 11111011. Convertido a hexadecimal: 0xFFFFFFFB.

Como otro ejemplo, echemos un vistazo a cómo se representa el número entero -1 en la computadora.

Supongamos que esto también es un tipo int, entonces:

1. Primero tome el código original 1: 00000000000000000000000000000000000000001.

2. Código inverso: 111111111165438. 8 0111 11111110

3. Código de complemento: 1111111111165438. 8 0111 11111111

El código original y el código de complemento de un positivo número, el complemento a dos son iguales, iguales a él mismo.

El complemento de un número negativo es: el bit de signo es 1, los demás bits se invierten y el último bit se suma a 1.

El código del complemento es: el bit de signo es 1, los demás bits están invertidos, pero el último bit no suma 1.

En otras palabras, sumar 1 al último dígito del código del complemento es el código del complemento.

1100110011 yuanes

1011001100 libera el signo bit y lo invierte poco a poco.

1011001101 complementa el bit de signo y suma 1 invirtiendo el bit.

Los complementos originales de los números positivos son iguales.

En las computadoras, los datos se almacenan en forma de complemento a dos:

En un número de máquina de n bits, el bit más alto es el bit de signo, lo que indica que cero es positivo y 1 es negativo. ;

Los n-1 bits restantes son bits numéricos y el valor de cada bit puede ser 0 o 1.

Si el valor verdadero es positivo: el código original, el complemento y el complemento son exactamente iguales;

Cuando el valor verdadero es negativo: los dígitos del código original permanecen sin cambios,

Los dígitos del código inverso son la inversión de los dígitos del código original,

El complemento es el bit más bajo del complemento más 1.

Tenga en cuenta que el bit de signo permanece sin cambios.

Por ejemplo, si el número de máquinas es de 16 bits:

El código original, complemento y complemento del número decimal 17 son: 00000000010001.

El código original, complemento y complemento del número decimal -17 son: 100000001, 1111111111111165438