1.Código original
El bit más alto se utiliza como bit de signo (0 representa positivo, 1 representa negativo) y los bits restantes representan el valor absoluto del valor en sí (expresado en binario).
Por simplicidad, usamos 1 byte para representar un número entero.
El código original de +7 es: 00000111
El código original de -7 es: 10000111
2.Código inverso
Si un número es positivo, su complemento es el mismo que el código original; si un número es negativo, el bit de signo es 1 y los bits restantes son la inversión del código original.
Por simplicidad, usamos 1 byte para representar un número entero:
El complemento de +7 es: 00000111
El complemento de -7 es: 11111000
3. Código complementario
Código de complemento: si un número es positivo, su código original, código de complemento y complemento son iguales. Si un número es negativo, el bit de signo es 1 y los bits restantes son la inversión del código original, y luego el código completo; El número se suma en 1. Por simplicidad, usamos 1 byte para representar un número entero:
El complemento de +7 es: 00000111
El complemento de -7 es: 11111001
Dado el complemento de un número negativo, conviértelo a un número decimal. Pasos:
1. Primero, te contradeciré;
2. Conviértalo a un número decimal;
3. Suma el signo negativo y resta 1.
Por ejemplo:
11111010, el bit más alto es 1, que es un número negativo. Primero, niegue cada bit para obtener 00000101, conviértalo a un número decimal para obtener 5, agregue un signo negativo para obtener -5 y luego reste 1 para obtener -6.
¿Por qué es un número negativo cuando lanzo int a=232 al tipo de byte? ? ?