Quantos números inteircs distintos podem ser representados usando 16 bits em cada uma das seguintes representagōes: sem sinal, sinal e magnitude, complemento de um, complemento de dois e excesso de
com
?
Passo 1
O enunciado pede: “Quantos números inteiros distintos podem ser representados usando 16 bits em cada uma das seguintes representações: sem sinal, sinal e magnitude, complemento de um, complemento de dois e excesso de
com
?”
Informações dadas e relevantes:
- O tamanho disponível é de
bits (ou seja, existem padrões de bits possíveis). - Para a representação em excesso, o valor de viés (bias) é
. - Precisa-se responder separadamente para cada um dos cinco esquemas: sem sinal, sinal e magnitude, complemento de um, complemento de dois e excesso de
.
Passo 2
Conceito útil e cálculo básico: com
bits existem exatamente
padrões distintos de bits. Para
isso dá
Vamos calcular esse valor em decimal para usar depois. Sabendo que
e
, temos
Portanto, existem
padrões de 16 bits no total.
Passo 3
Sem sinal (unsigned): aqui cada padrão de bits representa diretamente um inteiro não negativo. Os valores representáveis são
ou seja
Assim, o número de inteiros distintos representáveis é exatamente o número de padrões de bits:
Passo 4
Sinal e magnitude (sign-and-magnitude): neste esquema o bit mais significativo (MSB) é o sinal (por exemplo
para positivo e
para negativo) e os outros
bits codificam a magnitude absoluta. Então a magnitude pode assumir valores
Calculando
:
logo a magnitude máxima é
.
Interpretação dos códigos:
- Para sinal
e magnitude obtemos o inteiro com . - Para sinal
e magnitude obtemos o inteiro com .
Observação importante:
dá tanto
quanto
(duas codificações distintas que representam o mesmo inteiro
). Portanto há uma duplicação apenas para o zero. Contagem dos inteiros distintos:
- inteiros não negativos:
são valores; - inteiros negativos (excluindo o zero):
são valores.
Somando:
Logo, em sinal e magnitude há
inteiros distintos representáveis.
Como mini-exemplo didático: com
bits (1 sinal + 3 magnitude) há
padrões, magnitudes
a
; inteiros distintos
totalizando
inteiros (duas representações para zero).
Passo 5
Complemento de um (one’s complement): aqui o negativo de um número é obtido fazendo complemento bit a bit. Para
bits, a magnitude máxima representada (em módulo) é a mesma que em sinal-e-magnitude:
. Os inteiros representáveis vão tipicamente de
até
. Novamente aparecem duas codificações para zero: todos os bits
(representando
) e todos os bits
(representando
), ambas correspondendo ao mesmo valor inteiro
.
Portanto o número de inteiros distintos é o número total de padrões menos uma duplicação (as duas codificações de zero contam como um mesmo inteiro):
Passo 6
Complemento de dois (two’s complement): neste esquema o negativo é obtido fazendo complemento de um e somando
; isso elimina a duplicidade do zero: há exatamente uma codificação para
(todos zeros). O intervalo de valores representáveis com
bits em complemento de dois é
Aqui
, logo o intervalo é
O número de inteiros distintos é exatamente o número de padrões de bits, pois não há duplicidade:
Mini-exemplo: com
bits o intervalo é
a
(total
valores).
Passo 7
Excesso de
(excess/bias) com
: neste esquema cada padrão de bits é interpretado primeiro como um inteiro sem sinal
e o valor real é
Com
e
variando de
a
, os valores
variam de
até
Assim os inteiros representáveis são
. Não há duplicação: cada padrão de bits dá um único inteiro distinto. Logo o número de inteiros distintos é novamente o número total de padrões:
Observação: esse tipo de codificação (excesso/bias) é muito usado para expoentes em formatos de ponto flutuante.
Resposta
sem sinal:
\n
sinal e magnitude: \n
complemento de um: \n
complemento de dois: \n
excesso de com
:
sinal e magnitude:
complemento de um:
complemento de dois:
excesso de