Red de conocimiento del abogados - Preguntas y respuestas jurídicas - Código original, código inverso, código complemento

Código original, código inverso, código complemento

Permítame darle una explicación detallada: código original, complemento y código inverso

(1) Representación del código original

La representación del código original es la máquina número A representación simple de . El bit de signo usa 0 para representar el signo positivo y: para representar el signo negativo. El valor generalmente se expresa en forma binaria. Supongamos que un número es x, entonces la representación del código original se puede registrar como [x] original.

Por ejemplo, ]Original=01010110

[X2]Original=[-1001010]Original=11001010

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

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

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

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

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

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

En el representación del código original, hay dos representaciones de 0:

〔0〕Original=00000000

[-0] Original=10000000

(2) Complemento a dos representación

El complemento del número de máquina se puede expresar mediante el código original get. Si el número de máquina es un número positivo, el complemento del número de máquina es el mismo que el código original; si el número de máquina es un número negativo, el complemento del número de máquina es la inversión de su código original (excepto el bit de signo); ), y los bits restantes se invierten. Se obtiene sumando 1 al bit. Suponiendo un número X, la representación en complemento de X se registra como complemento [X].

Por ejemplo, [X1]=+1010110

[X2]= 1001010

[X1]original=01010110

[X1 ] Suplemento=01010110

Es decir, [X1] Original=[X1] Suplemento=01010110

[X2] Original= 11001010

[X2] Suplemento= 10110101+1=10110110

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 máximo es 0,1111111 y su valor verdadero es (0,99)10

El mínimo es 1,0000000 , y su valor verdadero es ( 1) 10

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

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

El mínimo es 10000000 y su valor verdadero es (uno 128) 10

En la representación del complemento, 0 tiene una sola representación:

[+0] complemento =00000000

p>

[+0] complemento=11111111+1=00000000 (debido a la limitación de la longitud de la palabra del dispositivo, el último acarreo se pierde)

Así que hay es [+0] complemento=[+0] complemento=00000000

(3) Representación de 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 un número positivo, el complemento a uno del número de máquina es el mismo que el código original; si el número de máquina es un número negativo, el complemento a uno del número de máquina se obtiene invirtiendo los bits de su código original; (excepto el bit de signo). Suponiendo un número X, la representación del código inverso de X se registra como [X] inversa.

Por ejemplo: 〕Original=01010110

[X2]Original=11001010

[X2]Inverse=10110101

El código inverso Generalmente se usa como una forma intermedia del proceso de complemento, es decir, en Sumar 1 al último bit del complemento de un número negativo para obtener el complemento del número negativo.

Ejemplo 1. Se sabe que [X] original =10011010, encuentra el complemento [X].

El análisis es el siguiente:

El principio para encontrar el complemento de [X] del [X] original es: si el número de máquina es un número positivo, entonces [X ] original = [X] complemento; si Si el número de máquina es un número negativo, el complemento del número de máquina se puede obtener negando todos los bits de su código original (excepto el bit de signo) y luego sumando 1 al último. poco. Ahora el número de máquina dado es un número negativo, entonces [X] complemento = [X] original diez 1, es decir,

[X] original = 10011010

[X] inverso = 11100101

10) 1

[X] complemento=11100110

Ejemplo 2. Se sabe que [X] complemento=11100110, encuentra el valor original de [X].

El análisis es el siguiente:

Para que el número de máquina sea un número positivo, entonces [X] original = [X] complemento

Para la máquina Si un número es negativo, entonces existe [ X〕original=〔〔 [ p>

Los números se representan en forma binaria en las computadoras.

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 métodos de representación de números 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.

A continuación se utiliza un entero de 8 bits como ejemplo.

El código original es la forma binaria del número mismo.

Por ejemplo

0000001 es 1

1000001 es -1

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

El código inverso de un número negativo consiste en invertir todos los bits del código original excepto el bit de signo

[-3]Inverse=[10000011]Inverse=11111100

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

[-3] complement=[10000011] complement=11111101

Un número y su complemento son reversibles.

¿Por qué deberíamos configurar el código complementario?

La primera es para permitir que la computadora realice restas:

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

La segunda razón es para la unificación 0 positivo y 0 negativo

Cero positivo: 00000000

Cero negativo: 10000000

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

Pero sus complementos son iguales, ambos son 00000000

Especial atención, si hay un carry después del 1, siempre hay que reenviarlo, ¡incluido el bit de signo! (¡Esto es diferente del código del complemento!)

[10000000] complemento

=[10000000] complemento 1

=11111111 1

=(1)00000000

=00000000 (el bit más alto se desbordó y el bit de signo se volvió 0)

Algunas personas pueden preguntar

La representación del complemento de 10000000 ¿Qué complemento de número es?

De hecho, esta es una regla. Este número representa -128

Entonces, el rango que el complemento de n bits puede representar es

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

Un número más de lo que puede expresar el código original de n dígitos

Otro ejemplo:

1011

p>

Código original: 01011

Código inverso: 01011 //Cuando el número es positivo, el código inverso = código original

Código completo: 01011 //Cuando el número es positivo, el código complemento =Código original

-1011

Código original: 11011

Código inverso: 10100 / /Cuando el número es negativo, el código inverso es la inversión del código original

Código complemento: 10101 //Cuando es un número negativo, el código complemento es la inversión del código original + 1

0.1101

Código original: 0.1101

Código inverso: 0.1101 //Cuando el número es positivo, el código complemento = código original

Código de complemento: 0.1101 //Cuando el número es positivo, el código de complemento = código original

-0.1101

Código original: 1.1101

Código de complemento: 1.0010 / /Cuando el número es negativo, el código complemento es la inversión del código original

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

En las computadoras, hay tres representaciones de números de punto fijo: código original, código complementado y código complementario

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

La representación en complemento a uno estipula que el complemento a uno de un número positivo es igual a su código original; el complemento a uno de un número negativo es la inversión de su código original bit a bit, excepto el signo. poco.

La representación en complemento estipula 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 existe un número de tipo int con valor 5. Entonces, sabemos que se representa en el ordenador como:

00000000 00000000 00000000 00000101

5 se convierte en El sistema binario es 101, 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 se representa -5 en la computadora?

En informática, los números negativos se expresan como el complemento de sus valores positivos.

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

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

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

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

La operación de negación significa: el valor original es 1 y el resultado es 0; el valor original es 0 y el resultado es 1. (1 cambia a 0; 0 cambia a 1)

Por ejemplo: invierta cada bit de 00000000 00000000 00000000 00000101 para obtener 11111111 11111111 11111111 11111010.

Nombre: 11111111 11111111 11111111 11111010 es el complemento de 00000000 00000000 00000000 00000101.

Los complementos son mutuos, por lo que también se pueden llamar:

11111111 11111111 11111111 11111010 y 00000000 00000000 00000000 00000101 son los complementos entre sí.

Código complemento: El código complemento más 1 se llama código complemento.

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: 00000000 00000000 00000000 00000101 el complemento de 1 es: 11111111 11111111 11111111 11111010.

Entonces, el complemento es:

11111111111111 11111111 11111010 1 = 11111111 11111111 11111111 11111011

Por lo tanto, -5 se expresa en la computadora como: 1111111111111111111111111111111111111111011

1111 11111111 11111011. Convertir a hexadecimal: 0xFFFFFFFB.

Como otro ejemplo, veamos cómo se representa el número entero -1 en una computadora.

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

1. Obtenga primero el código original de 1: 00000000 00000000 00000000 00000001

2. Obtenga lo inverso código: 11111111 11111111 11111111 11111110

3. Obtén el complemento: 11111111 11111111 11111111 11111111

El código original, el complemento y el código inverso de un número positivo son todos iguales, y son todos iguales a sí mismo

El código de complemento de un número negativo es: el bit de signo es 1, los bits restantes se niegan y el último bit se suma con 1

El código de complemento es: el bit de signo es 1, los bits restantes se niegan, pero el último bit no se agrega

p>

En otras palabras, agregar 1 al último bit del código complementario es el código complementario

1100110011 original

1011001100 divide el bit de signo y niega el bit a bit

1011001101 Para complementar y dividir el bit de signo, suma 1 a la inversión bit a bit

La inversión original de números positivos es la misma

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

En un número de máquina de n bits, el bit más alto es el bit de signo si este bit es cero, significa positivo, y si es 1, significa negativo;

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

Cuando el valor verdadero es positivo: los bits numéricos del código original, código complementado y complemento son exactamente iguales

Cuando el valor verdadero es negativo: los bits numéricos de; el código original sigue siendo el mismo.

Los bits numéricos del código complementario son el inverso de los bits numéricos del código original.

El código complementario es el bit más bajo del complemento código más uno.

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

Por ejemplo: Si el número de máquina es de 16 dígitos:

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

Número decimal - 17 El código original, código inverso y código complemento son respectivamente: 1000000000010001, 1111111111101110, 1111111111101111