1. Código original
O bit mais alto é usado como bit de sinal (0 representa positivo, 1 representa negativo) e os bits restantes representam o valor absoluto do próprio valor (expresso em binário).
Para simplificar, usamos 1 byte para representar um número inteiro.
O código original de +7 é: 00000111
O código original de -7 é: 10000111
2. Código reverso
Se um número for positivo, seu complemento é igual ao código original; se um número for negativo, o bit de sinal é 1 e os bits restantes são a inversão do código original.
Para simplificar, usamos 1 byte para representar um número inteiro:
O complemento de +7 é: 00000111
O complemento de -7 é: 11111000
3. Código complementar
Código complementar: Se um número for positivo, seu código original, código complementar e complemento são iguais, se um número for negativo, o bit de sinal é 1 e os bits restantes são a inversão do código original e, em seguida, o todo; número é adicionado por 1. Para simplificar, usamos 1 byte para representar um número inteiro:
O complemento de +7 é: 00000111
O complemento de -7 é: 11111001
Dado o complemento de um número negativo, converta-o em um número decimal.
1. Primeiro, vou contradizer você;
2. Converta para número decimal;
3. Adicione o sinal negativo e subtraia 1.
Por exemplo:
11111010, o bit mais alto é 1, que é um número negativo. Primeiro negue cada bit para obter 00000101, converta-o em um número decimal para obter 5, adicione um sinal negativo para obter -5 e depois subtraia 1 para obter -6.
Por que é um número negativo quando converto int a=232; ? ?