( 0,5 pontos) Que número decimal esse número binário em complemento de dois representa: 1111 1111111111111111111100000110 bin?
Passo 1
O enunciado pede: “Que número decimal esse número binário em complemento de dois representa: 1111 1111111111111111111100000110 bin?”
Informações fornecidas: o número binário é (fornecido com espaços). Vou usar essa sequência como está para identificar o tamanho e o valor.
Informações fornecidas: o número binário é
Passo 2
Juntar os bits e contar quantos são para ficar claro o formato. Sem espaços a sequência é
Ou seja, temos
bits (quatro grupos de 8 bits — bytes). Observação importante: o bit mais significativo (o primeiro, à esquerda) é
. Em representação em complemento de dois isso indica que o número é negativo. Portanto precisamos converter para descobrir a magnitude (valor absoluto) e então colocar o sinal negativo.
Passo 3
Método para obter a magnitude de um número negativo em complemento de dois: invertemos todos os bits (trocar
por
e
por
) e depois somamos
. Aplicando a inversão bit a bit à sequência temos
Expliquei o que fiz: cada
virou
e cada
virou
.
Passo 4
Agora somamos
ao resultado obtido no passo anterior:
Detalhe do acréscimo: somando
ao byte final
resulta em
(sem propagação para bytes superiores porque não houve overflow além desse byte).
Passo 5
Converter o binário resultante para decimal. Como todos os bytes superiores são zeros, precisamos converter apenas o último byte
. Usamos pesos de potências de
: o bit mais à esquerda do byte vale
, o próximo
, e assim por diante. Então
Calculando cada termo:
Somando:
Portanto a magnitude (valor absoluto) é
.
Passo 6
Como o número original tinha o bit de sinal igual a
, o valor em complemento de dois é negativo. Então o número decimal representado é
. (Checagem alternativa rápida: como unsigned o valor seria
; subtraindo
dá
, mesmo resultado.)