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 k com k=32767 ?

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 k com k=32767?”
Informações dadas e relevantes:
  • O tamanho disponível é de 16 bits (ou seja, existem 2^{16} padrões de bits possíveis).
  • Para a representação em excesso, o valor de viés (bias) é k=32767.
  • Precisa-se responder separadamente para cada um dos cinco esquemas: sem sinal, sinal e magnitude, complemento de um, complemento de dois e excesso de k.

Passo 2

Conceito útil e cálculo básico: com n bits existem exatamente 2^{n} padrões distintos de bits. Para n=16 isso dá
2^{16}.
Vamos calcular esse valor em decimal para usar depois. Sabendo que 2^{10}=1024\approx 10^{3} e 2^{6}=64, temos
2^{16}=2^{10}\cdot2^{6}=1024\cdot64=65536.
Portanto, existem 65536 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
0,1,2,\dots,2^{16}-1
ou seja
0,1,\dots,65535.
Assim, o número de inteiros distintos representáveis é exatamente o número de padrões de bits:
\text{sem sinal: }2^{16}=65536.

Passo 4

Sinal e magnitude (sign-and-magnitude): neste esquema o bit mais significativo (MSB) é o sinal (por exemplo 0 para positivo e 1 para negativo) e os outros 15 bits codificam a magnitude absoluta. Então a magnitude pode assumir valores
0,1,2,\dots,2^{15}-1.
Calculando 2^{15}:
2^{15}=32768,
logo a magnitude máxima é 2^{15}-1=32767.
Interpretação dos códigos:
  • Para sinal 0 e magnitude m obtemos o inteiro +m com m\in\{0,\dots,32767\}.
  • Para sinal 1 e magnitude m obtemos o inteiro -m com m\in\{0,\dots,32767\}.
Observação importante: m=0 dá tanto +0 quanto -0 (duas codificações distintas que representam o mesmo inteiro 0). Portanto há uma duplicação apenas para o zero. Contagem dos inteiros distintos:
  • inteiros não negativos: 0,1,\dots,32767 são 32768 valores;
  • inteiros negativos (excluindo o zero): -1,-2,\dots,-32767 são 32767 valores.
Somando:
32768+32767=65535.
Logo, em sinal e magnitude há 65535 inteiros distintos representáveis.
Como mini-exemplo didático: com 4 bits (1 sinal + 3 magnitude) há 16 padrões, magnitudes 0 a 7; inteiros distintos -7,\dots,-1,0,1,\dots,7 totalizando 15 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 16 bits, a magnitude máxima representada (em módulo) é a mesma que em sinal-e-magnitude: 2^{15}-1=32767. Os inteiros representáveis vão tipicamente de -32767 até +32767. Novamente aparecem duas codificações para zero: todos os bits 0 (representando +0) e todos os bits 1 (representando -0), ambas correspondendo ao mesmo valor inteiro 0.
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):
2^{16}-1=65536-1=65535.

Passo 6

Complemento de dois (two’s complement): neste esquema o negativo é obtido fazendo complemento de um e somando 1; isso elimina a duplicidade do zero: há exatamente uma codificação para 0 (todos zeros). O intervalo de valores representáveis com 16 bits em complemento de dois é
-2^{15},\,-2^{15}+1,\dots,-1,0,1,\dots,2^{15}-1.
Aqui 2^{15}=32768, logo o intervalo é
-32768,\dots,32767.
O número de inteiros distintos é exatamente o número de padrões de bits, pois não há duplicidade:
2^{16}=65536.
Mini-exemplo: com 4 bits o intervalo é -8 a 7 (total 16 valores).

Passo 7

Excesso de k (excess/bias) com k=32767: neste esquema cada padrão de bits é interpretado primeiro como um inteiro sem sinal U\in\{0,\dots,2^{16}-1\} e o valor real é
V=U-k.
Com k=32767 e U variando de 0 a 65535, os valores V variam de
0-32767=-32767
até
65535-32767=32768.
Assim os inteiros representáveis são -32767,\dots,32768. 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:
2^{16}=65536.
Observação: esse tipo de codificação (excesso/bias) é muito usado para expoentes em formatos de ponto flutuante.

Resposta

sem sinal: 65536\n
sinal e magnitude: 65535\n
complemento de um: 65535\n
complemento de dois: 65536\n
excesso de k com k=32767: 65536

Exercícios relacionados