Determinado microprocessador tem palavras de 1 byte. Qual é o menor e o maior inteiro que pode ser representado nas seguintes representações:
Sem sinal
Sinal-magnitude
Complemento a um
Complemento a dois
Sem sinal
Sinal-magnitude
Complemento a um
Complemento a dois
Passo 1
O enunciado pede: para um microprocessador cuja palavra tem
byte, determinar o menor e o maior inteiro representáveis nas quatro representações seguintes:
- Sem sinal (unsigned)
- Sinal-magnitude (sign-magnitude)
- Complemento a um (ones’ complement)
- Complemento a dois (two’s complement)
Informações dadas no enunciado que usaremos:
- Uma palavra tem
byte, ou seja, bits.
Passo 2
Quantas combinações diferentes de bits há com
bits? Isso é básico e muito útil porque todas as representações usam esse total de padrões. A quantidade de padrões é dada por
Ou seja, há
padrões de
e
possíveis para uma palavra de
bits.
Passo 3
Representação sem sinal (unsigned). Aula rápida: nesta representação todos os
bits são usados para o valor magnitude (não há bit de sinal). O menor inteiro é
(todos os bits zero) e o maior é quando todos os bits são
. O valor máximo é
Portanto, na representação sem sinal o intervalo é de
até
.
Exemplo binário: maior
— cuidado: com
bits maior é
que equivale a
.
Passo 4
Representação sinal-magnitude (sign-magnitude). Explicação passo a passo: nesta representação o bit mais significativo (MSB) é o bit de sinal (
para positivo,
para negativo) e os
bits restantes codificam a magnitude em binário puro. Assim, as magnitudes possíveis vão de
até
. Calculamos:
Consequências importantes (que sempre caem em prova): existe
e
(porque magnitude
com sinal
ou
). O maior inteiro positivo representável é
e o menor inteiro (mais negativo) representável é
.
Exemplos binários (com
bits):
Passo 5
Representação complemento a um (ones’ complement). Conceito e como operar: números positivos são representados como em binário normal com MSB
. Para um número negativo, pega-se a representação binária do positivo correspondente e inverte-se todos os bits (bitwise NOT). Isso implica que também há dois zeros:
(todos zeros) e
(todos uns). Quantos valores distintos há para magnitudes não-nulas? Ainda
magnitudes positivas (de
a
) e
magnitudes negativas (de
a
), mais os dois zeros totalizando
padrões.
Logo o intervalo numérico é
Exemplo binário:
Observação importante para provas: a palavra
em complemento a um representa
, enquanto em complemento a dois ela representa
. Não confundir!
Passo 6
Representação complemento a dois (two’s complement). Conceito e fórmula: aqui o MSB também funciona como bit de sinal, mas a codificação é feita de tal maneira que há apenas um zero (
) e os valores vão assimétricos para negativos. Em
bits (aqui
) o intervalo é
Substituindo
:
Intuição prática: o menor valor é obtido com
seguido de
zeros em binário:
=
. O maior positivo é com MSB
e os outros
bits iguais a
:
=
.
Como converter um negativo para complemento a dois: escreva a magnitude em binário, inverta os bits e some
. Ex.: para
em 8 bits:
em binário =
; inverter ->
; somar
->
. Assim
em complemento a dois.
Passo 7
Recapitulando, com
bits (1 byte) e seguindo as definições acima, temos os intervalos pedidos. Você consegue decorar rápido na prova: para unsigned é
a
; para sign-magnitude e ones’ complement é simétrico com amplitude
(
com dois zeros em each caso); para two’s complement é assimétrico em que o mínimo é
e o máximo
.
Força aí — dá pra decorar e lembrar dos exemplos binários na hora! Boa sorte na prova 😉
Resposta
Sem sinal: menor =
, maior =
Sinal-magnitude: menor = , maior =
Complemento a um: menor = , maior =
Complemento a dois: menor = , maior =
Sinal-magnitude: menor =
Complemento a um: menor =
Complemento a dois: menor =