Você está na página 1de 0

2-1

Captulo
DOIS
Sistemas de numerao em computao
2. 1 Introduo
Em todas as frmulas usadas a seguir, B representa a base do sistema de numerao, n
representa a quantidade de dgitos disponveis para representar os nmeros, e a, b e c
representam nmeros. A frmula utilizada para representar um nmero inteiro:
n-1
a =
(x
i
.B
i
)
i=0
ser representada por a=
n-1
x
i
B
i
, ficando a variao de i desde 0 at o limite (n-1) implcita.
Para uma determinada base B, empregando-se n dgitos, pode-se representar B
n
combi-
naes distintas, ou seja, B
n
nmeros distintos. Assim, para base decimal com trs dgitos
pode-se representar 1000 nmeros distintos (com zero includo!). Entretanto, com os
mesmos trs dgitos e base dois, representa-se somente 8 nmeros distintos. Assim,
nmeros binrios vo exigir um grande nmero de dgitos, e normalmente trabalha-se com
grandes cadeias de zeros e uns. Isto pode levar a erros visuais, e por isso empregam-se
comumente as notaes em base 8 e base 16 para representar nmeros binrios.
A tabela abaixo lista os primeiros 16 nmeros em binrio, decimal, octal e hexadecimal.
Binrio Decimal Octal Hexadecimal
0000 0 00 0
0001 1 01 1
0010 2 02 2
0011 3 03 3
0100 4 04 4
0101 5 05 5
0110 6 06 6
0111 7 07 7
1000 8 10 8
1001 9 11 9
1010 10 12 A
1011 11 13 B
1100 12 14 C
1101 13 15 D
1110 14 16 E
1111 15 17 F
Tabela 2.1 - Nmeros em binrio, decimal, octal e hexadecimal
Em computao trabalha-se normalmente com quatro bases: a decimal, para entrada e sada
dos dados (j que nossa sociedade baseada no sistema decimal); a binria, para os clculos
internos; a hexadecimal, como forma compactada de representao interna; e a octal, tambm
por este motivo. Note-se que a escolha das bases 8 e 16 no ocasional: as transformaes
2-2
entres as bases 2, 8 e 16 pode ser feita facilmente pelo mtodo da substituio direta. Embora
a base hexadecimal seja de representao mais complexa (utiliza letras e dgitos), ela
preferida sobre a base octal por ser mais compacta, ou seja, requerer menos espao para
representar os resultados.
Os nmeros do sistema binrio so formados como qualquer outro nmero do sistema de
numerao arbico (inclusive em octal ou hexadecimal): cada novo nmero obtido por
enumerao, somando-se um ao seu antecessor (e observando-se a regra do vai-um).
Cada dgito do sistema binrio (0 e 1) denominado de bit, a contrao de binary digit. A
determinados conjuntos de bits so empregados nomes especficos. Assim, um quarteto (4
bits) frequentemente denominado de nibble, e um octeto (8 bits) recebe a denominao de
byte (ou o termo aportuguesado baite). Os mltiplos deste conjuntos utilizam os mesmos
denominadores que no sistema decimal (K para kilo, M para Mega, G para giga, T para
Tera, P para Peta), mas o fator multiplicativo no 1000 (10
3
) mas sim 1024 (2
10
). Assim,
um kilobit (abreviado 1Kb) so 1024 bits, e um kilobyte (abreviado 1KB) so 1024 bytes.
Um megabyte (1MB) so 1024 KB; um gigabyte (1GB) so 1024 MB, um terabyte (1TB)
so 1024 GB e assim por diante.
2. 2 Soma de nmeros binrios
A soma de dois nmeros binrios utiliza as mesmas regras da soma no sistema decimal.
Como existem entretanto somente dois smbolos, a tabela de soma extremamente simples:
a c d=a+c
0 0 0
0 1 1
1 0 1
1 1 0 e vai-um
Tabela 2.2 - Tabela verdade de um meio-somador (half adder)
Observe-se que soma de 1 mais 1 resulta em 10 (dois), ou seja, o dgito do resultado zero e
existe a ocorrncia de um vai-um (carry out, em ingls). Considerando-se a possvel
existncia de um vem-um (carry in) e de vai-um (carry out), obtm-se a tabela a seguir.
a c vem-um d=a+c vai-um
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Tabela 2.3 - Tabela verdade de um somador completo (full adder)
2. 3 Representao de nmeros
A representao de nmeros inteiros positivos direta e imediata. Entretanto, necessrio
expandir (ou modificar) esta representao para incluir tambm nmeros negativos. Diversas
representaes foram desenvolvidas com este propsito. Quatro destas representaes, as
mais comuns atualmente, so analisadas a seguir: inteiros positivos, sinal/magnitude,
complemento de B-1 e complemento de B.
2-3
2. 3. 1 Nmeros inteiros positivos
Considerando-se somente a representao de nmeros inteiros positivos, com n dgitos
pode-se representar B
n
nmeros, dispostos no intervalo fechado entre zero (o menor) e B
n
1
(o maior).
Faixa de representao: [ 0 , B
n
1 ]
Assim, para 2 dgitos decimais tem-se 100 nmeros, de 0 a 99; para 3 dgitos em base 3 tem-
se 27 nmeros, de 0 (000
3
) a 26 (222
3
); para 4 dgitos binrios tem-se 2
4
=16 nmeros,
desde zero (0000
2
) at 15 (1111
2
); para 8 dgitos binrios tem-se 2
8
=256 nmeros, desde
zero (00000000
2
) at 255 (11111111
2
); No existe previso para nmeros negativos.
Clculo do valor do nmero
O valor de nmero positivo calculado pelo polinmio
n-1
x
i
B
i
, exatamente o mesmo
mtodo utilizado para a converso pelo mtodo polinomial.
Troca de sinal
Como no existe a capacidade de representar nmeros negativos, no existe tal funo.
Soma de dois nmeros
A soma de dois nmeros positivos realizada somando-se os dois polinmios dgito a
dgito, de acordo com as tabelas da soma na base em questo. Para base 2 utiliza-se a Tabela
2.3 da seo 2.2. Naturalmente, nesta soma leva-se em conta os eventuais vai-um e vem-
um.
2. 3. 2 Nmeros com sinal: representao em sinal-magnitude
Para permitir nmeros com sinal, esta representao utiliza um dgito (normalmente o mais
significativo) para representar o sinal. No sistema decimal, o smbolo usado para
indicar nmeros negativos e + (ou simplesmente um espao vazio) para nmeros positivos.
Com isto ganha-se a possibilidade de representar inteiros negativos, mas a faixa de
representao reduzida porque tem-se agora somente (n1) dgitos para representar a
magnitude.
Faixa de representao: [ (B
n-1
1) , +(B
n-1
1) ] ou [ (B
n-1
1) , (B
n-1
1) ]
Divide-se a gama de representao em dois subconjuntos simtricos, um para nmeros
negativos e outro para positivos. A faixa dos nmeros positivos reduzida de um fator igual
a base B. Por exemplo, para base decimal com dois dgitos, se consideramos somente
nmeros positivos tem-se a faixa de 0 at 99; com a representao em sinal magnitude
obtm-se a faixa de 9 at +9. Alm disto, existem duas representaes para o zero: 0 e +0.
De um modo geral, para uma base qualquer, das B
n
combinaes possveis usam-se somente
2.B
n-1
1 (descontando-se o duplo zero). No exemplo acima, das 100 combinaes so
utilizadas somente 19.
Em binrio, entretanto, com B=2, obtm-se 2.2
n-1
1, ou seja, 2
n
1 (isto , B
n
1). Assim,
somente uma representao perdida (a do duplo zero). Obs.: no sistema binrio costuma-se
utilizar 1 no lugar de , e 0 no lugar de +. Assim, para 4 dgitos, 0111 representa 7,
1111 representa 7, 0000 representa zero e 1000 representa 0.
2-4
Clculo do valor do nmero
Um nmero em sinal magnitude, independente de qual a base utilizada, formado por duas
parcelas, escritas lado a lado. A parcela esquerda (S(a)) representa o sinal e a parcela
direita (M(a)) a magnitude:
a = S(a)M(a)
onde S(a) + ou , e M(a)=
n-2
x
i
B
i
. Em binrio, utiliza-se usualmente 0 no lugar de
+ e 1 ao invs de -.
Troca de sinal
Para trocar o sinal de um nmero a em sinal magnitude, troca-se simplesmente S(a),
mantendo-se a magnitude M(a). Assim, no caso de c=a, tem-se M(c)=M(a), e se S(a)=+,
ento S(c)=, e se S(a)= ento S(c)=+.
Soma de dois nmeros
A soma de dois nmeros em sinal magnitude realizada de acordo com as regras da tabela
abaixo. No caso, deseja-se calcular d=a+c.
S(a) S(c) S(d) M(d) Exemplo
+ + + M(a)+M(c) 5 + 7 = 12
M(a)+M(c) -5 + -7 = -12
+ se M(a)M(c), + M(a)M(c) 7 + -5 = 2
se M(a)<M(c), M(c)M(a) 5 + -7 = -2
+ se M(a)>M(c), M(a)M(c) -7 + 5 = -2
se M(a)M(c), + M(c)M(a) -5 + 7 = 2
Tabela 2.4 - Soma em sinal / magnitude
Note-se que, para realizar somas de nmeros em sinal/magnitude, deve-se conhecer as
tabelas de soma e de subtrao da base em que se estiver trabalhando. Esta necessidade de
realizar duas operaes distintas (soma e subtrao) torna muito mais complexa a
manipulao de nmeros em sinal/magnitude pelo computador. Assim, apesar de familiar ao
ser humano, esta notao pouco utilizada em computao.
Para resolver o problema de representao de nmeros negativos, optou-se por usar a
notao em complemento da base, como visto a seguir. Duas notaes foram desenvolvidas:
em complemento de (B-1) e em complemento de B Observao: a tabela de subtrao em
binrio ser vista mais adiante (seo 2.5).
2. 3. 3 Nmeros com sinal: representao em complemento de (B1)
Para permitir que a operao de soma seja realizada de forma nica, sem preocupao com os
sinais dos operandos, utilizada a representao em complemento. Nmeros positivos so
representados na forma normal, e nmeros negativos so representados em complemento.
Na representao em complemento de (B-1), o complemento de um nmero a obtido
subtraindo-se este nmero da maior quantidade representvel, ou seja, B
n
1a. Assim, na
base 10, com 3 dgitos, o complemento de 9 (10-1) de um nmero a obtido pela frmula
999-a. Note-se que isto equivale a subtrair cada um dos dgitos de a de 9, que justamente a
base 10 menos um. Generalizando, para representar nmeros negativos em complemento de
B1, cada algarismo x
i
complementado individualmente pela frmula B1x
i
. A tabela a
seguir ilustra o clculo do complemento para diversas bases.
2-5
Algarismo B=2 B=3 B=4 B=8 B=9 B=10
0 1 2 3 7 8 9
1 0 1 2 6 7 8
2 - 0 1 5 6 7
3 - - 0 4 5 6
4 - - - 3 4 5
5 - - - 2 3 4
6 - - - 1 2 3
7 - - - 0 1 2
8 - - - - 0 1
9 - - - - - 0
Tabela 2.5 - Exemplos de clculo de complemento de B-1
A notao em complemento elimina a necessidade de representao explcita do smbolo do
sinal, ou seja, no existe um smbolo especial para o sinal. A faixa de nmeros
representveis dividida em duas. Uma das faixas representa nmeros positivos, e a outra
faixa representa nmeros negativos. Existindo m representaes, as primeiras m/2 so
utilizadas para nmeros positivos (de 0 a m/2), e as m/2 representaes seguintes (de m/2 at
m) so utilizadas para nmeros negativos. A faixa de representao fica:
Faixa de representao, para B par: [ (B
n
/21) , +(B
n
/21) ]
Faixa de representao, para B mpar: [ (B
n
3)/2 , +(B
n
1)/2 ]
A tabela a seguir ilustra as faixas para diversas bases. Note-se que a gama de representao
dividida em dois subconjuntos, um para nmeros negativos e outro para positivos. A faixa
dos nmeros positivos reduzida da metade (em relao aos inteiros positivos). Continua
existindo a dupla representao do zero, assim como em sinal magnitude, mas no existe
mais a perda de capacidade de representao devido a existncia do dgito de sinal.
Base Num.dig. Faixa Faixa em decimal
2 4 1000,1001,..,1111,0000,0001,..,0111 7,6,..,0,+0,1,..7
3 3 112,120,121,..,222,000,001,..,111 12,11,10,..,0,+0,1,..,13
4 3 200,201,..,333,000,001,..,132,133 31,30,..,0,+0,1,..31
8 3 400,401,..,777,000,001,..,376,377 255,254,..,0,+0,..,255
9 2 45,46,..,88,00,01,..,43,44 39,38,..,0,+0,1,..,39,40
10 2 50,51,..,98,99,00,01,..,48,49 49,48,..,1,0,+0,..,48,49
Tabela 2.6 - Exemplos de faixas de representao em complemento de B-1
Por exemplo, para base decimal com dois dgitos, se consideramos somente nmeros posi-
tivos tem-se a faixa de 0 at 99; com a representao em complemento de 9 obtm-se a faixa
de 50 a 99 e 0 a 49. A primeira metade (de 50 a 99) representa nmeros negativos (de 49 a
0); a segunda metade (de 0 a 49) representa nmeros positivos. Note-se que um nmero
iniciando por 9, 8, 7, 6 ou 5 negativo; iniciando por 0, 1, 2, 3 ou 4 positivo. Em binrio,
para 4 dgitos, tem-se a faixa 1000 a 1111 (7 a 0) e 0000 a 0111 (0 a 7). Nmeros
iniciando por 1 so negativos, e iniciando por 0 so positivos.
Para bases mpares, existe um nmero positivo a mais, e para a determinao do sinal no
basta a verificao do dgito mais significativo (veja-se a seguir). Por exemplo, na tabela 2.6,
os nmeros em base 3 iniciando por zero so positivos, e os nmeros iniciando por 2 so
negativos, mas dos nmeros iniciando por 1 metade so positivos (100, 101, 102, 110 e
111) e metade so negativos (112, 120, 121 e 122).
2-6
Clculo do valor do nmero
Um nmero em complemento de (B1) tem o seu valor calculado de acordo com os
seguintes passos:
determinao do sinal: se a representao do nmero, interpretado como inteiro
positivo, estiver na metade superior da faixa, ele negativo. Se estiver na metade
inferior da faixa, positivo. Ou seja, sendo o nmero a=
n-1
x
i
B
i
, se a B
n
/2, ento
este nmero em complemento de (B1) negativo. Se a<B
n
/2, ento, em complemento
de (B1), ele positivo. Obs.: para bases pares, basta analisar o dgito mais
significativo, conforme j explicado.
Assim, por exemplo, para base 3 com trs dgitos, tem-se 3
3
= 27 representaes. A
metade 13,5, e assim os nmeros de 0 a treze (representados respectivamente por
000 a 111) so positivos, e os de 14 a 26 (representados por 112 a 222) so negativos.
Note-se que existem 14 nmeros positivos, e 13 nmeros negativos.
Em outro exemplo, para base 4 com trs dgitos, tem-se 4
3
= 64 combinaes. A
metade 32, e ento os nmeros de 0 a 31 (representados por 000 a 133) so
positivos, e os de 32 a 63 (representados por 200 a 333) so negativos. Existem neste
caso 32 nmeros positivos e 32 nmeros negativos.
determinao da magnitude do nmero. Se o nmero a for positivo, ento sua
magnitude dada por M(a)=
n-1
x
i
B
i
. Se o nmero a for negativo, para calcular sua
magnitude (valor absoluto) deve-se calcular o complemento de (B1) de cada
algarismo, ou seja, substitui-se cada dgito pelo seu complemento. Alternativamente,
tambm possvel manipular todo o nmero:
M(a)=
n-1
(B-1-x
i
)B
i
=
n-1
(B-1)B
i

n-1
x
i
B
i
= B
n
1
n-1
x
i
B
i
=B
n
1a
Assim, por exemplo, para base 3 com trs dgitos, a magnitude de 110 12 (o nmero
positivo). J o nmero 112 negativo, e assim seus dgitos devem ser
complementados, resultando em 110, ou seja, a magnitude tambm 12. Utilizando-se
a frmula acima, tem-se tambm 3
3
1(112)
3
= 27114=2614=12.
A tabela a seguir fornece diversos exemplos do clculo do valor de um nmero, de acordo
com as regras descritas acima.
Base Num.dig. Nmero Sinal Magnitude Num.decim.
2 4 1110 1 1
2 4 1001 6 6
2 4 1010 5 5
2 4 0101 + 5 +5
3 3 102 + 11 +11
3 3 111 + 13 +13
3 3 121 10 10
10 2 98 1 1
10 2 99 0 0
10 3 45 + 45 +45
10 3 54 45 45
10 3 76 - 23 -23
10 3 50 - 49 -49
Tabela 2.7 - Exemplos de clculo do valor de um nmero em complemento de B-1
2-7
Troca de sinal
Para trocar o sinal de um nmero a em complemento de (B1), basta complementar, tambm
em B1, cada um de seus dgitos. Assim, no caso de c=(a), tem-se, pelo raciocnio acima,
c=B
n
1a. Note-se que ((a)) = (B
n
1a) = B
n
1(B
n
1a) = a.
No caso de bases mpares, o maior positivo, ao ser trocado de sinal, resulta novamente em si
prprio. Nestes casos, diz-se que houve estouro de representao (veja seo 2.6). Para
bases pares, isto nunca ocorre (para complemento de B-1). A tabela abaixo ilustra diversos
casos de troca de sinal.
Base Num.dig. Nmero Nm.negado Magnitude
2 4 1110 0001 1
2 4 1001 0110 6
2 4 1010 0101 5
2 4 0101 1010 5
3 3 102 120 11
3 3 111 111 (estouro) 13
3 3 121 101 10
10 2 98 01 1
10 2 99 00 0
10 2 45 54 45
10 2 54 45 45
16 2 01 FE 1
16 2 FF 00 0
16 2 98 67 103
Tabela 2.8 - Exemplos de troca de sinal para nmeros em complemento de B-1
Soma de dois nmeros
Para entender-se o processo de soma de dois nmeros em complemento de (B1), deve-se
analisar os mesmos casos da soma em sinal magnitude. Na Tabela 2.9 a seguir, deseja-se
realizar a soma d=a+c. Os nmeros a e c esto em complemento de (B1), e quer-se obter d
tambm em complemento de (B1). Note-se que um nmero x, quando for negativo, est
representado por B
n
-1-M(x). As quatro primeiras colunas da esquerda da tabela mostram os
mesmos seis casos da soma em sinal/magnitude, e a coluna da direita ilustra o resultado
obtido pela simples soma dos dois operandos, sem analisar-se seus sinais, suas magnitudes
ou se eles devem na realidade ser somados ou subtrados (ou seja, simplesmente realiza-se a
soma a+c).
Em todos os casos mostrados na Tabela 2.9, usam-se sempre as mesmas tabelas de soma de
nmeros inteiros (no se utilizam tabelas especiais para soma ou subtrao em complemento
de (B1)). Note-se que em trs casos, marcados com (*), no se obtm diretamente o
nmero j representado em complemento de (B1); existe um termo excedente de B
n
1. Nos
outros trs casos, no marcados, o resultado obtido j est correto.
Para reconhecer facilmente os casos que necessitam de correo, basta observar-se que o
termo B
n
corresponde a um dgito na posio (n+1). Como os nmeros representados tem
somente n posies, a posio (n+1) s ser ocupada naquelas somas que produzirem um
vai-um. Assim, se o termo B
n
estiver presente, ele s pode ter sido gerado, na soma, por
um vai-um. Ou seja, somente os casos que produzirem um vai-um so os que
necessitam de correo. Para eliminar o termo B
n
, basta eliminar-se este vai-um. E para
eliminar o termo (1), adiciona-se um ao resultado.
2-8
S(a) S(c) S(d) M(d) Resultado obtido pela
simples soma de a+c
+ + + M(a)+M(c) a+c
M(a)+M(c)
B
n
-1-M(a) + B
n
-1-M(c)
B
n
-1+B
n
-1-(M(a)+M(c))
B
n
-1 + B
n
-1 - M(d)
B
n
-1 + d (*)
+ se M(a)M(c), + M(a)M(c)
M(a) + B
n
-1-M(c)
B
n
-1 + M(a)-M(c)
B
n
-1 + d (*)
se M(a)<M(c), M(c)M(a)
M(a) + B
n
-1-M(c)
B
n
-1 - (M(c)-M(a))
B
n
- 1 - M(d)
d
+ se M(a)>M(c), M(a)M(c)
B
n
-1 - M(a) + M(c)
B
n
-1 - (M(a)-M(c))
B
n
-1 - M(d)
d
se M(a)M(c), + M(c)M(a)
B
n
-1 - M(a) + M(c)
B
n
-1 + (M(c)-M(a))
B
n
-1 + d (*)
Tabela 2.9 - Soma em complemento de B-1
Simplificando, tem-se a seguinte regra de correo: para obter a soma correta em
complemento de (B1), basta somar o vai-um ao resultado (e eliminar o vai-um). Ou,
dito de outra maneira, se ocorrer um vai-um, deve-se somar um ao resultado para corrigi-
lo. Se no ocorrer vai-um, o resultado j est correto. A tabela a seguir ilustra exemplos de
diversas somas, tanto em base 2 (complemento de um) como em base 10 (complemento de
nove).
Base Num.dig. a c d=a+c d corrigido
2 4 1110 0001 1111 1111
2 4 1111 0001 10000 0001
2 4 1001 0111 10000 0001
2 4 0110 1111 10101 0110
2 4 0101 1000 1101 1101
2 4 0011 0011 0110 0110
2 4 1111 1111 11110 1111
2 4 0001 1110 1111 1111
10 2 98 37 135 36
10 2 99 00 99 99
10 2 99 01 100 01
10 2 45 55 100 01
10 2 45 45 90 90
10 2 76 45 121 22
Tabela 2.10 - Exemplos de soma em complemento de B-1
2-9
2. 3. 4 Nmeros com sinal: representao em complemento de B
Para representar nmeros em complemento de B, utiliza-se a frmula B
n
a. Note-se que, ao
contrrio de complemento de (B1), esta frmula aplicada sobre todo o nmero, e no
sobre os seus algarismos individuais. Desta maneira elimina-se a dupla representao do
zero, e faixa de representao fica:
Faixa de representao, para B par: [ (B
n
/2) , +(B
n
/21) ]
Faixa de representao, para B mpar: [ (B
n
1)/2 , +(B
n
1)/2 ]
Note-se que a gama de representao dividida em dois subconjuntos, um para nmeros
negativos e outro para positivos. No existe mais a dupla representao do zero. Observe-se
tambm que as faixas (considerando-se a representao dos nmeros) continuam as mesmas
da representao em complemento de B1. Como estes nmeros so agora interpretados em
complemento de B, entretanto, os valores das faixas mudam. A faixa positiva permanece a
mesma, mas a faixa negativa sofre um deslocamento de uma unidade, de forma a eliminar o
zero negativo. A tabela a seguir ilustra as faixas para diversas bases.
Base Num.dig. Faixa Faixa em decimal
2 4 1000,1001,..,1111,0000,..,0111 8,7,..,1,0,1,..7
3 3 112,120,121,..,222,000,001,..,111 13,12,11,..,1,0,1,..,13
4 3 200,201,..,333,000,001,..,132,133 32,31,..,1,0,1,..31
8 3 400,401,..,777,000,001,..,376,377 256,255,..,1,0,1,..,255
9 2 45,46,..,88,00,01,..,43,44 40,39,..,1,0,1,..,39,40
10 2 50,51,..,98,99,00,01,..,48,49 50,49,..,2,1,0,1,..,48,49
Tabela 2.11 - Exemplos de faixas de representao em complemento de B
Na Tabela 2.11, por exemplo, para base decimal com dois dgitos, com nmeros positivos
tem-se a faixa de 0 at 99; com a representao em complemento de 9 obtm-se a faixa de 50
a 99 e 0 a 49. Esta faixa continua a mesma para complemento de 10; e da mesma maneira a
primeira metade (de 50 a 99) representa nmeros negativos; a segunda metade (de 0 a 49)
representa nmeros positivos. Entretanto, agora 99 representa 1 (e no mais zero, como em
complemento de 9) e 50 representa o nmero 50 (que no tem representao positiva
equivalente!). Ou seja, todos os nmeros negativos sofreram um acrscimo de 1. As
demais propriedades se mantm: um nmero iniciando por 9, 8, 7, 6 ou 5 negativo;
iniciando por 0, 1, 2, 3 ou 4 positivo. Em binrio, para 4 dgitos, tem-se a faixa 1000 a
1111 (8 a 1) e 0000 a 0111 (0 a 7). Nmeros iniciando por 1 so negativos, e iniciando
por 0 so positivos.
Note-se tambm que agora as bases mpares tem faixas simtricas, mas que as bases pares
possuem um nmero negativo a mais, que no tem equivalente positivo dentro da faixa.
Clculo do valor do nmero
Um nmero em complemento de B, tem o seu valor calculado de acordo com os seguintes
passos:
determinao do sinal: a regra a mesma de complemento de (B1): se a
representao do nmero, interpretado como inteiro positivo, estiver na metade
superior da faixa, ele negativo. Se estiver na metade inferior da faixa, positivo. Ou
seja, sendo o nmero a=
n-1
x
i
B
i
, se a B
n
/2, ento este nmero em complemento de
B negativo. Se a<B
n
/2, ento sua interpretao de um nmero positivo. Obs.: para
bases pares, a regra pode ser simplificada: basta analisar o dgito mais significativo,
conforme j foi explicado.
2-10
determinao da magnitude do nmero. Se o nmero a for positivo, ento sua
magnitude dada por M(a)=
n-1
x
i
B
i
. Se o nmero a for negativo, para obter seu valor
deve-se calcular o complemento de B do nmero:
M(a)=B
n
a = B
n

n-1
x
i
B
i
Note-se que B
n
-1-a a representao em complemento de (B1). Assim, uma maneira rpida
de calcular o complemento de B realizando o complemento de (B1) de cada algarismo e a
seguir somar um no nmero resultante. Ou seja, (B
n
1a)+1 = B
n
a, que o nmero
desejado em complemento de B. A tabela a seguir fornece diversos exemplos.
Base Num.dig. Nmero Sinal Magnitude Num.decim.
2 4 1110 2 2
2 4 1001 7 7
2 4 1010 6 6
2 4 1000 8 8
2 4 0101 + 5 +5
2 4 0111 + 7 +7
3 3 102 + 11 +11
3 3 111 + 13 +13
3 3 112 13 13
3 3 121 11 11
10 2 98 2 2
10 2 99 1 1
10 3 45 + 45 +45
10 3 54 46 46
10 3 50 50 50
Tabela 2.12 - Exemplos de clculo do valor de um nmero em complemento de B
Troca de sinal
Para trocar o sinal de um nmero a em complemento de B, basta calcular B
n
-a. Ou, pelo
raciocnio acima, calcula-se o complemento de (B1), complementando cada algarismo, e
depois soma-se um. A tabela a seguir ilustra diversos casos de troca de sinal. Note-se que,
para bases pares, a troca de sinal do menor nmero negativo (de maior magnitude) provoca
estouro de representao, pois este nmero no tem equivalente positivo. Em bases mpares
isto no ocorre.
Base Num.dig. Nmero Nm.negado Magnitude
2 4 1110 0010 2
2 4 1001 0111 7
2 4 1010 0110 6
2 4 0101 1011 5
2 4 1000 1000 (estouro) 8 (8)
3 3 102 121 11
3 3 111 112 13
3 3 121 102 10
10 2 98 02 2
10 2 99 01 1
10 3 45 55 45
10 3 54 46 46
10 3 50 50 (estouro) 50 (50)
Tabela 2.13 - Exemplos de troca de sinal para nmeros em complemento de B
2-11
Soma de dois nmeros
O raciocnio anlogo ao utilizado em complemento de (B1). Deve-se analisar os mesmos
casos da soma em complemento de (B1) e da soma em sinal magnitude. Na tabela a seguir,
deseja-se calcular d=a+c. Os nmeros a e c esto representados em complemento de B, e
quer-se obter d tambm em complemento de B.
A tabela praticamente uma cpia da usada para complemento de (B1); comparando-se as
duas nota-se que a diferena est na eliminao de todos os termos 1 (que justamente a
diferena entre (B1) e (B). Como no caso de complemento de B-1, tem-se seis casos a
serem analisados. A coluna da direita mostra o resultado obtido se for realizada simplesmente
uma soma dos dois operandos, sem a preocupao de analisar previamente os operandos.
Em todos os casos, usam-se sempre as mesmas tabelas de soma de nmeros inteiros (no se
utilizam tabelas especiais para complemento de B). Note-se que em trs casos, marcados
com (*), no se obtm diretamente o nmero j representado em complemento de B; existe
um termo excedente de B
n
. Nos outros trs casos, no marcados, o resultado obtido j est
correto.
S(a) S(c) S(d) M(d) d (Soma de a + c)
+ + + M(a)+M(c) a+c
M(a)+M(c)
B
n
-M(a) + B
n
-M(c)
B
n
+B
n
- (M(a)+M(c))
B
n
+ B
n
- M(d)
B
n
+ d (*)
+ se M(a)M(c), + M(a)M(c)
M(a) + B
n
-M(c)
B
n
+ M(a)-M(c)
B
n
+ d (*)
se M(a)<M(c), M(c)M(a)
M(a) + B
n
-M(c)
B
n
- (M(c)-M(a))
B
n
- M(d)
d
+ se M(a)>M(c), M(a)M(c)
B
n
- M(a) + M(c)
B
n
- (M(a)-M(c))
B
n
- M(d)
d
se M(a)M(c), + M(c)M(a)
B
n
- M(a) + M(c)
B
n
+ (M(c)-M(a))
B
n
+ d (*)
Tabela 2.14 - Soma em complemento de B
Os casos a serem corrigidos so identificados da mesma maneira que em complemento de
(B1). Somente os casos que produzirem um vai-um so os que necessitam de correo.
Para eliminar o termo B
n
, basta eliminar este vai-um; no existe a necessidade de somar
um ao resultado. Para todos os fins prticos, esta eliminao realizada simplesmente
ignorando-se a existncia do vai-um em um primeiro momento (a ocorrncia ou no do
vai-um ainda pode influenciar a anlise do resultado da soma, mas no a soma
propriamente dita).
A tabela a seguir ilustra exemplos de diversas somas, tanto em base 2 como em base 10,
considerando que os nmeros esto representados em complemento de B.
2-12
Base Num.dig. a c d=a+c d corrigido
2 4 1110 0001 1111 1111
2 4 1001 0111 10000 0000
2 4 1111 0001 10000 0000
2 4 0110 1111 10101 0101
2 4 0101 1000 1101 1101
2 4 0011 0011 0110 0110
2 4 1111 1111 11110 1110
2 4 0001 1110 1111 1111
10 2 98 37 135 35
10 2 99 00 99 99
10 2 99 01 100 00
10 2 45 55 100 00
10 2 45 45 90 90
10 2 76 45 121 21
Tabela 2.15 - Exemplos de soma em complemento de B
2. 4 Comparao entre os mtodos
Dos quatro mtodos estudados nas sees anteriores, dois so amplamente utilizados: o de
representao de nmeros positivos e o de representao em complemento de B. Nestas duas
representaes, somas so realizadas atravs das mesmas tabelas; nenhum procedimento
especial necessrio para somar-se dois nmeros em complemento de dois (exceto a
eventual eliminao do vai-um). Os outros dois mtodos, de sinal magnitude e de
complemento de (B1), sofrem da desvantagem de necessitarem de procedimentos mais
complexos para realizao da soma, alm de apresentarem duas representaes para o zero.
Em sistemas atuais, a base binria e utiliza-se para tratamento de nmeros negativos a
representao em complemento de 2.
A ttulo de comparao, a tabela a seguir mostra a interpretao decimal de nmeros binrios
de 4 dgitos nas quatro maneiras analisadas.
Binrio Int.positivo sinal mag. compl. de 1 compl. de 2
0000 0 +0 0 0
0001 1 1 1 1
0010 2 2 2 2
0011 3 3 3 3
0100 4 4 4 4
0101 5 5 5 5
0110 6 6 6 6
0111 7 7 7 7
1000 8 0 7 8
1001 9 1 6 7
1010 10 2 5 6
1011 11 3 4 5
1100 12 4 3 4
1101 13 5 2 3
1110 14 6 1 2
1111 15 7 0 1
Tabela 2.16 - Interpretao de nmeros binrios
2-13
2. 5 Subtrao
A operao de subtrao, seja qual for o mtodo de representao utilizado, pode ser
facilmente realizada transformando-a em uma soma:
d = a c = a + (c)
Assim, para realizar subtraes, pode-se simplesmente trocar o sinal do subtraendo e som-
lo ao minuendo. A troca de sinal e a soma seriam ento realizadas de acordo com o sistema
de representao utilizado.
A subtrao pode, tambm ser realizada atravs de tabelas prprias. Neste caso, no lugar de
vem-um (carry in), tem-se o emprestou-um(borrow in); e no lugar de vai um (carry
out) tem-se o pede-um (borrow out).
a c d=a-c
0 0 0
0 1 1 e pede-um
1 0 1
1 1 0
Tabela 2.17 - Tabela verdade de um meio-subtrator
a c emprestou um d=ac pede um
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
Tabela 2.18 - Tabela verdade de um subtrator completo
Apesar destas tabelas serem anlogas s utilizadas para a soma, a grande maioria dos
computadores no as utiliza; subtraes so realizadas internamente usando-se o mtodo do
complemento do subtraendo.
2. 6 Estouro de representao
Os nmeros representados em um computador so limitados. Quanto maior o nmero de
dgitos disponveis, maior ser a faixa dos nmeros representveis, mas esta faixa sempre
ser finita. Assim, ao realizar-se a soma (ou subtrao) de dois nmeros, o resultado pode
cair fora da faixa representvel. Nestes casos, diz-se que houve estouro ou transbordamento
da representao (overflow). Para representar corretamente o resultado quando ocorreu
estouro necessitaria-se de um dgito a mais para representar o nmero.
Por exemplo, para nmeros binrios de 4 dgitos, tem-se:
1000 + 0001 = 1001 8 + 1 = 7 (correto)
1000 + 1111 = 0111 8 + 1 = 7 (incorreto; deveria ser 9)
0111 + 1111 = 0110 7 + 1 = 6 (correto)
0111 + 0011 = 1010 7 + 3 = 6 (incorreto; deveria ser 10)
Note-se que o estouro no est diretamente relacionado com o vai-um. Os exemplos acima
ilustram isto. No primeiro caso, no ocorreu nem estouro nem vai-um; no segundo caso
2-14
ocorreram tanto estouro como vai-um; no terceiro caso ocorreu vai-um, mas no estouro;
e no quarto caso no ocorreu vai-um, mas ocorreu estouro.
Existe uma regra simples para determinao de estouro em complemento de 2: ocorre estouro
quando o vai-um do dgito mais significativo diferente do vem-um para este mesmo
dgito. Note-se que o dgito mais significativo o utilizado para indicar o sinal do nmero.
Esta a maneira como os computadores internamente calculam se o resultado estourou ou
no.
Uma outra maneira, que no necessita da anlise dos vai-um e vem-um, utiliza somente
os dgitos mais significativos dos dois operandos e do resultado, ou seja, analisam-se os
sinais dos operandos e do resultado. Esta anlise est resumida na tabela a seguir (seja
d=a+c).
Sinal de a Sinal de c Sinal obtido para d Sinal real de d Estouro
+ + + + No
+ + + Sim
No
+ Sim
+ +/ +/ Nunca ocorre
+ /+ /+ Nunca ocorre
Tabela 2.19 - Anlise dos casos de estouro de representao
Pela tabela, pode-se observar que:
se os dois operandos tiverem sinais diferentes, nunca ocorre estouro (a representao
do resultado sempre estar dentro da faixa).
somente ocorre estouro quando os dois operandos tiverem sinais iguais, e este sinal
diferente do sinal obtido para o resultado. Ou seja, quando somando-se dois nmeros
positivos obtm-se um resultado negativo, e quando somando-se dois nmeros
negativos obtm-se um nmero positivo. Nestas duas situaes, o sinal do resultado
est obviamente incorreto, e esta uma indicao clara que ocorreu estouro de
representao.
Assim, em uma soma, ocorre estouro quando S(a)=S(c) e S(a)S(d). Analogamente, em
uma subtrao ocorre estouro quando S(a)S(c) e S(a)S(d).
2. 7 Exerccios propostos
1. Qual o valor decimal de 01101101
2
? Qual a representao binria de 654?
2. Converter para binrio os seguintes nmeros decimais:
(a) 39 (b) 0,4475 (c) 256,75 (d) 129,5625
3. Converter para decimal os seguintes nmeros binrios:
(a) 01101 (b) 0,001101 (c) 0111011,1011 (d) 010110011
4. Quantos nmeros diferentes podem ser representados em uma palavra binria de 6 bits?
5. Quantos nmeros diferentes podem ser representados em um conjunto de 4 chaves, cada
uma com trs posies diferentes?
6. Escrever os 12 primeiros nmeros no sistema de numerao de base 5.
2-15
7. Escrever os 26 primeiros nmeros no sistema de numerao de base 12. Usar a letra A
para o decimal 10 e a letra B para o decimal 11.
8. Representar o nmero 12,1 em binrio de dez bits, com 5 bits de parte inteira e 5 bits de
parte fracionria.
9. Represente o nmero 47
10
usando representaes binrias de 8 bits em (a) sinal e
magnitude, (b) complemento de um e (c) complemento de dois.
10. Converter os seguintes nmeros hexadecimais em decimais:
(a) B6C7 (b) D2763 (c) 9,1A
11. Converter os seguintes nmeros octais em binrio:
(a) 56 (b) 32,234 (c) 231,2 (d) 3364
12. Converter os seguintes nmeros hexadecimais em binrios:
(a) AB2 (b) 12,A (c) 649 (d) 0,D19
13. Converter os seguintes nmeros binrios em hexadecimais:
(a) 010110111 (b) 011110,01011 (c) 01110100010101
14. Considerando um processador que opere com a base quaternria utilizando 5 bits.
14.1 Para nmeros inteiros positivos:
a) Quantos nmeros diferentes podem ser representados? (Frmula de clculo e valor
decimal)
b) Quais so os limites inferior e superior desta faixa? (Valor quaternrio e decimal
correspondente)
c) Como seria representado o nmero 126 neste sistema?
14. 2 Supondo que se queira representar os nmeros inteiros com sinal, usando sinal e
magnitude:
a) Quantos nmeros diferentes podem ser representados? (Frmula de clculo e valor
decimal)
b) Quais so os limites inferior e superior desta faixa? (Valor quaternrio e decimal
correspondente)
c) Como seria representado o nmero 126 neste sistema?
d) Como seria representado o nmero -126 neste sistema?
14.3 Agora supondo que se quer representar estes nmeros usando complemento de B-1:
a) Quantos nmeros diferentes podem ser representados? (Frmula de clculo e valor
decimal)
b) Quais so os limites inferior e superior desta faixa? (Valor quaternrio e decimal
correspondente)
c) Como seria representado o nmero 126 neste sistema?
d) Como seria representado o nmero -126 neste sistema?
14.4 Agora supondo que se quer representar estes nmeros usando complemento de B:
a) Quantos nmeros diferentes podem ser representados? (Frmula de clculo e valor
decimal)
b) Quais so os limites inferior e superior desta faixa? (Valor quaternrio e decimal
correspondente)
c) Como seria representado o nmero 126 neste sistema?
d) Como seria representado o nmero -126 neste sistema?
15. Considere os pares de nmeros binrios de 6 bits indicados abaixo. Efetue a operao de
soma entre eles supondo, independentemente, que:
1) os nmeros esto representados em sinal e magnitude;
2) os nmeros esto representados em complemento de um;
2-16
3) os nmeros esto representados em complemento de dois.
Para cada caso, interprete o resultado, isto , determine qual o seu valor numrico e indique
se este valor o resultado correto da operao para a forma de representao sugerida.
(a) 010101 e 110110 (b) 010101 e 010110 (c) 110101 e 110110
16. Efetuar as seguintes subtraes em um sistema decimal de 4 dgitos, utilizando uma vez
complemento de 9 e outra vez complemento de 10:
(a) 1024913 (b) 249137 (c) 119239
17. Repetir o exerccio 16, agora para um sistema binrio de 12 bits, uma vez utilizando
complemento de um e outra vez com complemento de dois.
18. Efetuar as operaes indicadas abaixo (em decimal) em um sistema binrio de 10 bits,
com notao em complemento de dois. Analise o resultado, indicando a eventual existncia
de estouro de representao:
(a) 475 + 128 (b) - 506 + -6 (c) 436 475
(d) 506 + 6 (e) 128 128 (f) - 475 + 511
19. Converta os nmeros 17 e 15 para binrio usando 6 bits e efetue a operao de soma
entre eles (17+15), usando as seguintes representaes:
a) sinal magnitude;
b) complemento de um;
c) complemento de dois.
Analise os resultados obtidos quanto correo (sem calcular o seu valor correspondente em
decimal).
20. Repita o exerccio 19 para os nmeros 13 e 8.
21. Repita o exerccio 19 para os nmeros -17 e -15 (realizando a soma -17+(-15)).
22. Mostre como somar em complemento de um, para n=6 bits, as seguintes parcelas
decimais:
(a) 27 e 7 (b) 27 e 8 (c) 1 e 5
23. Repetir o exerccio 23, com as parcelas codificadas em complemento de dois, tambm
para 6 bits.
24. Usando a tcnica de subtrair atravs de complemento do subtraendo, mostrar como obter
as seguintes diferenas em binrio, 6 bits, complemento de um:
(a) 8 7 (b) -16 16 (c) 15 24
25. Repetir o exerccio 25 para complemento de dois em 6 bits.
26. Repetir o exerccio 25 para sinal / magnitude.
27. Converta os seguintes nmeros para binrio, usando a representao destinada a inteiros
positivos, usando o nmero necessrio de bits e efetue a subtraes indicadas usando a
tabela de subtrao:
(a) 32 - 15 (b) 31 - 14 (c) 17 - 9
28. Supondo um sistema decimal, com 4 dgitos, que trabalhe com representao de
negativos em complemento de 9, mostre como realizar as operaes:
(a) 0136 + 7654 (b) 9998 + 7777 (c) 0010 0108
29. Repetir o exerccio 28 para representao em complemento de 10.

Interesses relacionados