Você está na página 1de 42

FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE

Curso Superior de Tecnologia em Redes de Computadores


Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Unidade II
Conversão de Bases e Aritmética Computacional
2.1 SISTEMAS DE NUMERAÇÃO
Para contar os objetos o homem teve de criar símbolos para representar as grandezas. Esses
símbolos, chamados de algarismos, são a base dos Sistemas de Numeração.

No início foi utilizada uma correspondência um-para-um entre os objetos e os dedos da mão, ou
pedras, ou riscos. Esse seria um sistema unário, com um único símbolo:

| || ||| |||| |||||

Os algarismos romanos foram uma evolução em relação a esse sistema unário. Eles são aditivos e
são usados símbolos especiais para grupos:

I=1 V=5 X=10 L=50 C=100 D=500 M=1000

A posição de cada algarismo em relação ao seu vizinho determina o número que está sendo
representado:

VI = 5 + 1 = 6 CXVI = 100 + 10 + 5 + 1 = 116


IV = 5 – 1 = 4 MCMLIX = 1000 + (1000 – 100) + 50 + (10 – 1) = 1959

Apesar da evolução, a realização de cálculos com esse sistema era praticamente impossível. Mais
tarde surgiu o sistema arábico de numeração, com 10 algarismos (0 a 9), com as seguintes
vantagens:

• Existir um símbolo para o valor nulo;


• Cada algarismo representa uma unidade a mais que o anterior
• Notação posicional: o valor de um algarismo depende de sua posição dentro do número
(peso);

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

2.2 OS SISTEMAS DECIMAL, BINÁRIO E HEXADECIMAL


Além do sistema de numeração decimal (base 10), nosso velho conhecido e a partir do qual
fazemos as nossas operações com números no dia a dia (saldo bancário, total de pontos do
Atlético no Campeonato Nacional, etc.) existem outros sistemas de numeração, em outras bases,
que são de especial interesse para a ciência da computação.
São eles os sistemas binário (base 2) e hexadecimal (base 16).

2.2.1 Lembrando o Sistema Decimal


O sistema decimal tem 10 símbolos que estão associados, cada um deles, à quantidade de
unidades de um conjunto definido. Assim, para representar a quantidade de pneus que tem um
carro, incluindo o step, nós usamos o símbolo 5. Poderia ser um C ou um ^, mas, por convenção
(antiga, por sinal...), passou-se a usar os símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 para representar ZERO
unidades, UMA unidade, DUAS unidades ..... e NOVE unidades na base 10 ou base decimal.
Questão: como representar a quantidade de jogadores de futebol que estão em campo no início
de uma partida, usando essa mesma base 10?
Resposta: usando a NOTAÇÃO POSICIONAL. É alguma coisa que fazemos a toda hora na base
10 e que nem sequer lembramos do nome.
NOTAÇÃO POSICIONAL significa, em síntese, que a quantidade de unidades que um
determinado símbolo da base de numeração representa depende da posição em que ele se
encontra no número, entendendo como NÚMERO um conjunto contíguo de símbolos da base que
representa o total de unidades de um determinado conjunto.
Assim os 22 jogadores no campo são representados por dois símbolos 2, um junto ao outro. O 2 à
direita representa 2 unidades e o dois à esquerda representa 20 unidades, ou duas dezenas.
No número 1971, ano em que o Atlético foi Campeão Nacional, o 1 mais à esquerda representa
mil ou 1000; o 9, representa novecentos ou 900; o 7, setenta ou 70 e o outro 1, um.
O número 1971 que para nós soa automático como um mil, novecentos e setenta e um é formado
pela soma:
1000 + 900 + 70 + 1 = 1x103 + 9x102 + 7x101 + 1x100

Se analisarmos cada uma das quatro parcelas da soma à direita podemos perceber o seguinte:

Regra no. 1
a quantidade de unidades representada por um símbolo em uma dada posição no número
é igual à quantidade de unidades representada por este símbolo na formação da base,
multiplicada pela base (10 no caso) elevada a uma potência igual a (n-1), onde n é a
posição ocupada pelo símbolo, contada da direita para a esquerda.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Dessa forma, o 9 corresponde a nove unidades vezes 10 elevado à potência de dois,


uma vez que n, no caso, é igual a três.

Entendida a base 10, entende-se todas as demais bases, uma vez que a formação de qualquer
delas segue a mesma regra.

ATENÇÃO: quando estamos contando ou escrevendo os números de ZERO a MIL, como


fazemos?
 0, 1, 2, ....., 9, ? – na base 10 não tem um símbolo que, sozinho, representa 10
unidades;
 criamos uma nova posição à esquerda e colocamos nela o símbolo que representa uma
unidade – 1;
 “zeramos” o valor da posição que continha o nove e continuamos... 10, 11, 12, ...... 19;
 na verdade, o que estamos fazendo é sempre somando uma unidade na posição mais à
direita do número;
 no 19, “zeramos” outra vez a posição mais à esquerda, somamos uma unidade na
posição imediatamente à direita e começamos novamente a somar uma unidade na
posição “das unidades” ou, na mais à direita;
 e assim fazemos até o 99; não se consegue representar o próximo número na base
decimal só com duas posições (ou dois algarismos);
 o que fazemos? Criamos mais uma posição à esquerda e nela colocamos o 1; zeramos
as posições à direita desse 1 e começamos a somar uma unidade na posição mais à
direita;
 e assim vai..... 999, 1000... e pronto.

Para todas as bases, o processo de construção dos números é o mesmo.

2.2.2 Sistema Binário


A base 10 é representada por dez símbolos. E a base binária ou base 2?
Por dois símbolos e, por falta de criatividade dos nossos antepassados, esses símbolos passaram a
ser 0 e 1. Poderiam ser + e -; < e >; A e B; . e – (igual no código Morse), mas são o 0(conjunto vazio ou
zero unidades) e o 1 (uma unidade).
E agora? Como contar ou escrever de zero unidades até mil unidades na base de numeração
binária?
Começa 0, 1.... e, com uma posição só, não é possível representar duas unidades na base 2;
Criamos uma posição à esquerda com 1 e colocamos um zero imediatamente à direita.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Vai ficar da seguinte forma: 10. Esse número ou esses símbolos contíguos representam um
conjunto com duas unidades na base binária.
Continuando.... 10, 11 (três unidades) ...??? Conforme pode ser visto não é possível representar
quatro unidades nesta base, com apenas duas posições (NOTAÇÃO POSICIONAL outra vez).
Vamos criar uma terceira posição à esquerda; nela colocamos o 1 e zeramos todas as posições à
direita;
100 é o quatro; 101 é o número que representa cinco unidades; 110 é o seis; 111 é o sete e então,
criamos nova posição para representar o oito – 1000;
o 1001 é o nove ..... e .... 1111101000 que representa mil unidades no sistema binário.
Atenção: os números no sistema binário vão ser formados por zeros e uns.
O que foi comentado sobre NOTAÇÃO POSICIONAL na base 10, vale também para a base 2,
ou seja, os uns (1) que aparecem numa cadeia ou número binário vão representar uma quantidade
de unidades que será função de sua posição na cadeia. Logicamente os zeros (0) não representarão nenhuma
unidade.
Como mostrado anteriormente, a cadeia 1001 representa um conjunto com nove unidades.
Aplicando a Regra no. 1, a cadeia acima pode ser desmembrada da seguinte forma:
1x23 + 0x22 + 0x21 + 1x20 = 1x8 + 0x4 + 0x2 + 1x1=8 + 0 + 0 + 1=9
Quantas unidades estão representadas na cadeia binária 101011? 43

2.2.3 Sistema Octal


O prefixo oct significa OITO. Logo, a base oito, octal ou o sistema octal tem oito símbolos para
representá-la. Por convenção, esse símbolos são os oito primeiros símbolos do sistema decimal,
ou seja, 0, 1, 2, 3, 4, 5, 6 e 7.
Valem aqui, as mesmas considerações feitas para os sistemas binário e decimal; notação
posicional, Regra no. 1, etc.
O número 135, no sistema octal, representa um conjunto com quantas unidades?
Usando o que foi visto para os demais sistemas:
1x82 + 3x81 + 5x80 = 1x64 + 3x8 + 5x1 = 64 + 24 + 5 = 93 ou noventa e três unidades
Atenção: o sistema decimal está sendo usado para fazer as contas, apresentar o resultado e na
linguagem “falada” para facilitar a compreensão. (noventa vem do nove (9) que é do sistema
decimal)

2.2.4 Sistema Hexadecimal


O prefixo hexa significa SEIS e o dec DEZ; a combinação dos dois leva à base 16, ou
hexadecimal. Essa base é representada por dezesseis símbolos. Por convenção, esse símbolos são
os dez símbolos do sistema decimal, mais as seis primeiras letras do alfabeto (letras maiúsculas).
Assim, os símbolos desse sistema são: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 4


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Valem aqui, as mesmas considerações feitas para os sistemas binário, octal e decimal; notação
posicional, Regra no. 1, etc.
O número 135, no sistema octal, conforme vimos, representa um conjunto com 93 unidades. E no
sistema hexadecimal? Quantas unidades estão representadas no número 135?
1x162 + 3x161 + 5x160 = 1x256 + 3x16 + 5x1 = 256 + 48 + 5 = 309 ou trezentas e nove unidades.

2.2.5 Mudando conceitos


A base 10 ou o sistema decimal deixa, a partir de agora, de ser o nosso “Porto Seguro”.
A rigor, podemos “conversar” em qualquer base de numeração, entender o significado dos
números em qualquer sistema.
Atenção: BABA pode não ser mais aquela mulher que toma conta dos filhos da gente; BABA
pode representar um conjunto com quarenta e sete mil, oitocentas e duas unidades.
A partir de agora é necessário que seja especificado do que estamos tratando ou em que base
estamos “operando”.
É semelhante à nossa própria linguagem de comunicação – o Português.
Qual é, por exemplo, o significado da palavra PAPAGAIO? Se o assunto em discussão for o
Reino Animal, PAPAGAIO significa uma coisa; se for dívidas ou dificuldades financeiras, o
significado é outro; se for relativo àquela brincadeira em que se “empina” um papel ou plástico,
armado por varetas de bambu, amarrado com uma linha mais grossa (sem “cerol”), é outro o
significado.
E TIME? Pode ser um grupo de atletas que praticam um esporte ou pode ser TEMPO, em inglês.
123? Depende da base de numeração. Essa, a partir de agora, deve, necessariamente ser
especificada.
Para especificar em que base de numeração estamos trabalhando, será usada a seguinte notação
(123)10 cento e vinte três na base dez
(123)4 um, dois, três na base quatro que representa vinte e sete unidades na base 10

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 5


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

2.3 CONVERSÕES ENTRE OS SISTEMAS DE NUMERAÇÃO


Por que converter um número de uma base para outra?
Os computadores digitais só entendem um tipo de linguagem ou de sistema – o sistema binário,
formado por dois símbolos – 0 e 1.
Programas e dados aparecem internamente como uma cadeia de 0’s e 1’s.
1110001010011101000100011110111011101011110111101111111
pode ser uma imagem de um pedaço da memória, em um determinado instante.
E daí? Temos que saber ler o que está na cadeia binária acima? Muitas vezes não. Em alguns
casos particulares, sim, especialmente quando se vai analisar problemas ou “pepinos” ocorridos
durante a execução de uma determinada tarefa. Na verdade não é necessário saber exatamente o
significado da cadeia binária, mas, se soubermos convertê-la para uma outra base, pode facilitar a
nossa vida.
Quem trabalha com linguagem de máquina (pouca gente se comparado com quem trabalha com
outro tipo de aplicação como desenvolvimento para WEB) deve entender bem dos zeros e uns.

2.3.1 Regras Genéricas para Conversão de Base


2.3.1.1 Da Base Decimal para Qualquer Base N.
Parte inteira: divide-se o número decimal sucessivamente pela base N até que o quociente seja
igual a 0(ZERO). A parte inteira do número na nova base (N) será obtida através dos restos das
divisões realizadas, “lidos” da última divisão para a primeira.
Exemplo. Converter (234)10 para a base binária (2).

234 2
0 117 2
1 58 2
0 29 2
1 14 2
0 7 2
1 3 2
1 1 2
1 0

O número binário correspondente é: (1 1 1 0 1 0 1 0 ) 2

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 6


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Parte fracionária: multiplica-se a parte fracionária do número decimal sucessivamente pela


base N até que o resultado da multiplicação seja igual a 0(ZERO) ou até que se atinja a
precisão desejada. A parte fracionária do número na nova base (N) será obtida através dos
valores inteiros dessas multiplicações, “lidos” da primeira multiplicação para a última.
Exemplo. Converter (234,84)10 para a base binária (2), considerando 3 casas depois da vírgula
A conversão da parte inteira já foi realizada. A da parte decimal será a seguinte:
0,84 0,68 0,36
x 2 x 2 x 2
1,68 1,36 0,72

1 1 0

A resposta completa é: (11101010,110) 2


O b s e r v a ç õ e s : a parte inteira de cada multiplicação é sempre 0(ZERO), ou seja, multiplica-se
pela base apenas a parte fracionária resultante da multiplicação anterior.
Exercício. Converter (234,84)10 para a base quatro (4), considerando 3 casas depois da vírgula.
234 4
2 58 4
2 14 4
2 3 4
3 0

0,84 0,36 0,44


x 4 x 4 x 4
3,36 1,44 1,76

3 1 1
Resposta: (3222,311)4

2.3.1.2 De uma Base N Qualquer para a Base Decimal


Parte inteira: multiplica-se o valor mais à esquerda na base N por N; em seguida,
soma-se ao resultado, o número de unidades correspondentes ao valor imediatamente à

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 7


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

direita (o segundo valor à esquerda do número); multiplica-se o resultado novamente pela


base N; soma-se ao resultado o número de unidades correspondentes ao valor
imediatamente à direita; e assim, sucessivamente até que o último valor à direita tenha sido
somado.
Exemplo 1. Converter (234)6 para a base decimal (10).
(2x6 + 3)x6 + 4 = 15x6 + 4 = 90 + 4 = 94
Exemplo 2. Converter (1 1 1 0 1 0 1 0 ) 2 para a base decimal (10).
((((((1x2 + 1)x2 + 1)x2 + 0)x2 + 1)x2 + 0)x2 + 1)x2 + 0 =
(((((3x2 + 1) x2 + 0)x2 + 1)x2 + 0)x2 + 1)x2 + 0 =
((((7x2 + 0)x2 + 1)x2 + 0)x2 + 1)x2 + 0 =
(((14x2 + 1)x2 + 0)x2 + 1)x2 + 0 = ((29x2 + 0)x2 + 1)x2 + 0 =
(58x2 + 1)x2 + 0 = 117x2 + 0 = (234)10

Coincidência? 234 outra vez? Lembra que no estudo de conversão da base decimal para qualquer
base N, convertemos o decimal 234 para a base binária? E o resultado obtido foi 11101010?

Parte fracionária: dividi-se o último valor da parte fracionária na base N, por N. Em


seguida, soma-se o valor imediatamente à esquerda; dividi-se o resultado por N e soma-
se o próximo valor à esquerda; prossegue-se nesse proceso até que o valor da parte
fracionária imediatamente à direita da vírgula tenha sido somado ao resultado anterior
e, o novo resultado tenha sido dividido por N.

Exemplo. Converter (234,54)6 para a base decimal (10), considerando 3 casas depois da vírgula

A conversão da parte inteira já foi realizada. A da parte decimal será a seguinte:


(4/6 + 5)/6 = (34/6)/6 = 34/36 = 0,944

Resposta final: (234,54)6 = (94,944)10

Exercício de esclarecimento. Converter (94,944)10 para a base seis (6), considerando 3 casas
depois da vírgula.

94 6
4 15 6

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 8


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

3 2 6
2 0

0,944 0,664 0,984


x 6 x 6 x 6
5,664 3,984 5,904

5 3 5

Resposta: (234,535)6
Por que a parte fracionária do número (234,54)6 é diferente da parte fracionária no número
(234,535)6, sendo que, na conversão deste último foi utilizado o número (94,944)10, resultado da
conversão do primeiro desses valores da base 6 para a base 10?
Resposta: Na primeira conversão, da base 6 para a base 10, o resultado foi aproximado e
apresentado com 3 casas depois da vírgula. Dessa forma, o valor “da volta”, que sofreu uma outra
aproximação (3 casas depois da vírgula), pode não ser o mesmo.

2.3.1.3 De uma Base N Qualquer para uma Base M Qualquer. M ≠ N


A não ser para casos especiais, ou tipos especiais de base, a conversão de uma base
qualquer N para uma outra base qualquer M tem que, necessariamente usar a base 10
(decimal) como ponte. Em outras palavras, primeiro convertemos da base N para a base
10 e depois, da base 10 para a base M.
Exercício de Fixação: converter o número (234,54)7 para a base 11 – com 3 casas depois da
vírgula.
1a parte – conversão da base N para a base 10 – para N = 7

Parte inteira  (2x7 + 3)x7 + 4 = 17x7 + 4 = 119 + 4 = 123


Parte fracionária  (4/7 + 5)/7 = 39/7 / 7 = 39/49 = 0,796
Resultado  (123,796)10

2a parte – conversão da base 10 para a base M – para M = 11

Parte inteira 
123 11
2 11 11
0 1 11
1 0

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 9


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Parte fracionária 
0,796 0,756 0,316
x 11 x 11 x 11
8,756 8,316 3,476

8 8 3

Resultado  (102,883)11

Assim, representam o mesmo número, em diferentes bases, os valores abaixo:

(234,54)7 = (123,796)10 = (102,883)11

2.3.1.4 De uma Base 2N Qualquer para uma Base 2M Qualquer. M ≠ N

Uma base 2N ou 2M, para N e M valores inteiros é uma base do tipo 21 – 22 – 23 - 24


-25 ...... e assim, sucessivamente. São bases de numeração 2(binária), 4, 8(octal),
16(hexadecimal), 32, 64, etc2 ????????? As bases de numeração de interesse da
computação estão neste conjunto. Para passar de uma base 2N qualquer para uma base
2M usa-se a base binária como passo intermediário, ou seja, primeiro transforma-se o
número na base 2N para a base binária, usando a tabela de equivalência abaixo; em
seguida, usando a mesma tabela, converte-se da base binária para a base 2M.

Atenção: se M ou N for igual a 1, uma das bases já é a binária e a conversão será feita em uma só
etapa.

Tabela de equivalência entre números em sistemas de numeração na base 2N, para N = 1, 2,


3e4

Binário Hexadecimal Binário Octal Binário Base 4


0000 0 000 0 00 0
0001 1 001 1 01 1
0010 2 010 2 10 2
0011 3 011 3 11 3
0100 4 100 4
0101 5 101 5
0110 6 110 6
0111 7 111 7
1000 8

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

Como usar a tabela? Parte inteira


Exemplo: Converter o número (CA74)16 para a base 8.
A 1a etapa da solução é a conversão de hexadecimal para binário. Como os símbolos da base
hexadecimal necessitam de 4 dígitos binários para ser representado no sistema binário, serão
usados esses 4 dígitos (2 primeiras colunas da tabela) para fazer a conversão, independente dos
prováveis 0(zeros) à esquerda.
Então, (CA74)16 é igual a 1100101001110100 na base binária.
A conversão é para o Octal correspondente. Como os símbolos desta base são representados por
três dígitos binários, a cadeia binária acima deverá ser dividida em grupos de três dígitos binários,
da direita para a esquerda, completando-se com zeros à esquerda, caso necessário.
1100|1010|0111|0100 Binário equivalente à base Hexadecimal
001|100|101|001|110|100 Binário equivalente à base Octal
Atenção: os dois zeros à esquerda foram incluídos para “compor” a base octal.
A leitura do Octal correspondente será feita consultando-se as duas colunas centrais da tabela.
Assim, o número na base 8 será (145164)8
construído conforme abaixo:
001|100|101|001|110|100
1 4 5 1 6 4 OCTAL
Exercício de verificação: converter os números (CA74)16 e (145164)8 para a base decimal.
(CA74)16 = ((12x16 +10)x16 + 7)x16 + 4 = (51828)10
(145164)8 = ((((1x8 +4)x8 + 5)x8 + 1)x8 + 6)x8 + 4 = (51828)10
DESCOBERTA sobre conversão de base N para base 10: se usarmos a Regra no 1
(NOTAÇÃO POSICIONAL), as “interpretações” ou conversões acima seriam:
(CA74)16 = 12x163 + 10x162 + 7x161 + 4x160 = 12x4096 + 10x256 + 112 + 4x1 = = 49152
+ 2560 + 112 + 4 = (51828)10
= 49152 + 2560 + 112 + 4 = (51828)10
(145164)8 = 1x85 + 4x84 + 5x83 + 1x82 + 6x81 + 4x80
= 1x32768 + 4x4096 + 5x512 + 1x64 + 48 + 4x1

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

= 32768 + 16384 + 2560 + 64 + 48 + 4 = (51828)10


A regra da Notação posicional e a regra de conversão de números de uma base N qualquer
para a base dez levam ao mesmo resultado. É a mesma regra seguindo dois procedimentos
diferentes.
Cada um use a regra que melhor lhe convier, ou em outras palavras, aquela que lhe
trouxer mais segurança e conforto no processo de conversão.

Como usar a tabela? Parte fracionária


Usa-se a tabela da mesma forma, montando a cadeia binária, com o número de dígitos
correspondentes à base de origem, a partir do primeiro valor depois da vírgula. Na passagem da
parte fracionária da cadeia binária para a parte fracionária na base M 2, começa-se a re-dividir a
cadeia binária em novos grupos de dígitos, da esquerda para a direita, ou seja, logo depois da
vírgula. Se faltarem dígitos, completa-se com zeros à direita.
Exemplo: converter (0,1322212)4 para a base 16
Com dois dígitos binários se constrói a base binária equivalente (última parte da tabela).
A cadeia binária será então:
01|11|10|10|10|01|10
Na re-divisão dessa cadeia em grupos de quatro dígitos, a nova cadeia fica:
01 11|10 10|10 01|1000
Os dois últimos zeros à direita foram incluídos para completar os quatro dígitos binários com que
se representa a base hexadecimal.
A cadeia hexadecimal correspondente será: (0,7A98)16 porque na transformação de binário para
hexadecimal (primeira parte da tabela) a cadeia 0111 corresponde ao 7; 1010 corresponde ao A;
1001 corresponde ao 9; 1000 corresponde ao 8.
Para verificar se essas cadeias são realmente equivalentes, vamos convertê-las para a base
decimal, já usando a idéia da Notação Posicional. No caso da parte fracionária o valor posicional
pode ser descrito como:
O dígito fracionário em uma dada base corresponde, na base decimal, ao seu valor
dividido pela base elevada à potência M, onde M é a posição daquele dígito contada da
esquerda para a direita, imediatamente depois da vírgula.

Assim, a parte fracionária (0,1322212)4 vale, na base decimal:


1/41 + 3/42 + 2/43 + 2/44 + 2/45 + 1/46 + 1/47 =
= 1/4 + 3/16 + 2/64 + 2/1024 + 1/4096 + 1/16384 =
= 0,25 + 0,1875 + 0,0313 + 0,0078 + 0,0019 + 0,0002 + 0,0000 = (0,4787)10

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Logicamente houve uma série de arredondamentos em cada parcela. O resultado com quatro
casas depois da vírgula será: (0,4787)10
O número (0,7A98)16 vale na base 10:
7/161 + 10/162 + 9/163 + 8/164 = 0,4375 + 0,0391 + 0,0022 + 0,0001= 0,4787
Vale a mesma observação com relação aos arredondamentos. O resultado com 4 casas depois da
vírgula será: (0,4797)10
A diferença na quarta casa decimal deve-se, logicamente, aos arredondamentos realizados.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

2.4 REPRESENTAÇÃO DE NÚMEROS INTEIROS

As formas de representação mais conhecidas são:


 Sinal e Amplitude – AS
 Complemento de 2 – C2
 Complemento de 1 – C1
 Excesso de 2(N-1) – E2
Para o estudo das formas de representação de números binários e, depois, para estudo das
operações com números binários, será utilizado como modelo ou padrão o byte de 6 bits.
Essa escolha deve-se, unicamente, a facilidade para realização de contas dentro de uma
amplitude menor que aquela que resultaria caso fosse utilizado o byte de 8 bits.

2.4.1 Representação em Sinal e Amplitude – SA


Nessa forma de representação o primeiro bit à esquerda é o bit de sinal. Ele não tem valor
numérico e indica se o número é positivo ou negativo.

0 0 0 – número positivo

1 – número negativo

Do 2o ao 6o bits são incluídos os dígitos (0’s e 1’s) que comporão o valor numérico da
cadeia binária; sua amplitude ou módulo.
Relembrando da notação posicional, na base binária, cada valor um representa o número
de unidades em função de sua posição no byte, de acordo com a representação abaixo:

S 16 8 4 2 1
Sinal
Ex 1: A cadeia binária 0 0 1 0 1 0 representa que número decimal? - Resposta  + 10
Por que? O bit de sinal é igual a zero, portanto o número é positivo; os bits iguais
a 1, aqueles que representam unidades na cadeia binária, em suas posições, da direita para
a esquerda, valem 2 e 8 unidades que somadas, dão o valor numérico da cadeia.

Ex 2: A cadeia binária 1 1 1 0 0 1 representa que número decimal? - Resposta  – 25

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Por que? O bit de sinal é igual a um, portanto o número é negativo; os bits iguais
a 1, aqueles que representam unidades na cadeia binária, em suas posições, da direita para
a esquerda, valem 1, 8 e 16 unidades que somadas, dão o valor numérico da cadeia.
Amplitude ou faixa de variação da representação em AS.
– 2(N-1) + 1 ≤ X ≤ +2(N-1) – 1
– 31 ≤ X ≤ + 31 (para byte de 6 bits)
Desvantagem – a representação em SA apresenta a desvantagem de aceitar duas cadeias
binárias diferentes para representar um único número.
Qual é esse número? É o 0 (ZERO).

0 0 0 0 0 0 1 0 0 0 0 0

As cadeias acima representam o número 0(zero).

2.4.2 Representação em Complemento de 2


Números positivos – mesmo dos positivos em representação SA; começam com 0 (zero) e
o módulo ou norma determinam o valor numérico.
Cadeia binária de nº Positivo em SA = Cadeia binária de nº Positivo em C2
Números Negativos – começam com 1, como em SA, com a diferença que, além de
indicar o sinal (negativo) esse 1 entra na formação do valor numérico da cadeia.
Como é formada a cadeia binária com representação em C2? Como é a cadeia binária
correspondente ao número decimal –17, representado em um byte de 6 bits?
Escreve-se, em binário, a soma do número negativo com 2N , onde N é o número de bits
do byte, no caso, 6.
-17 + 64 = 47  a cadeia binária correspondente é : 1 0 1 1 1 1
ATENÇÃO: NÃO À CONFUSÃO! 
1 0 1 1 1 1 REPRESENTA O NÚMERO –17, EM COMPLEMENTO DE 2, E NÃO O
NÚMERO 47.
A partir da cadeia binária em complemento de 2, qual é o decimal equivalente?
Executa-se a operação inversa:
Interpreta-se a cadeia binária (conversão para a base 10) e, do valor obtido, subtrai-se 2N
ou 26
Ex: 1 0 1 1 1 1 = (47)10  (47)10 – 64 = (-17) 10
Faixa de variação ou amplitude de representação em complemento de 2

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

-2(N-1) <= X <= +(2(N-1) – 1)


Para N = 6  -32 <= X <= +31
Desvantagem – faixa de variação assimétrica
Exercício: Determinar a Cadeia Binária equivalente aos decimais +22 e –23, em SA e em
C2, em byte de 6 bits.
CA - +22  010110 -23  110111
C2 - +22  010110 -23 + 64 = 41  101001

2.4.3 Representação em Complemento de 1


Números positivos – mesmo dos positivos em representação SA e C2; começam com 0
(zero) e o módulo ou norma determinam o valor numérico.
Cadeia binária de nº Positivo em SA = Cadeia binária de nº Positivo em C2 = Cadeia
binária de nº Positivo em C1
Números Negativos – começam com 1, como em SA e em C2; assim como em C2, esse 1
além de indicar o sinal (negativo) entra na formação do valor numérico da cadeia.
Como é formada a cadeia binária com representação em C1? Como é a cadeia binária
correspondente ao número decimal –17, representado em um byte de 6 bits?
Escreve-se, em binário, a soma do número negativo com (2 N – 1), onde N é o número de
bits do byte, no caso, 6.
-17 + 63 = 46  a cadeia binária correspondente é : 1 0 1 1 1 0

ATENÇÃO MAIS UMA VEZ: NÃO À CONFUSÃO! 


101110 REPRESENTA O NÚMERO –17, EM COMPLEMENTO DE 1, E NÃO O
NÚMERO 46.
A partir da cadeia binária em complemento de 1, qual é o decimal equivalente?
Executa-se a operação inversa:
Interpreta-se a cadeia binária (conversão para a base 10) e, do valor obtido, subtrai-se (2 N
– 1) ou 26 – 1 = 63
Ex: 1 0 1 1 1 1 = (47)10  (47)10 – 63 = (-16) 10
Faixa de variação ou amplitude de representação em complemento de 1
-2(N-1) + 1 <= X <= +2(N-1) – 1
Para N = 6  -31 <= X <= +31
Exercício: Determinar a Cadeia Binária equivalente aos decimais +7 e –3, em SA e em C2
e em C1, em byte de 6 bits.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

CA - +7  000111 -3  100111
C2 - +7  000111 -3 + 64 = 61  111101
C1 - +7  000111 -3 + 63 = 60  111100

Desvantagem: duas representações para o número 0 (zero)


000000 e 111111
Aplicando a regra de interpretação da cadeia teremos:
63 – 63 = 0

2.4.4 Representação em Excesso de 2 Elevado a (N-1)


Neste modo de representação o primeiro bit do byte também indica o sinal do número,
porém, a interpretação deste bit é o inverso da interpretação nas demais formas de representação.
O 1o bit igual a 1, significa que o número é positivo; caso ele seja igual a zero, o número é
negativo. Exceção à regra é a representação do 0(zero) na base 10 que corresponde à cadeia
binária 100000, conforme será visto adiante, com a aplicação da regra de formação desta forma
de representação.
Na representação em E2, todos os bits entram na formação do valor do número, tanto para
valores positivos quanto negativos.
Como a cadeia binária em representação Excesso de 2 Elevado a (N-1) – E2 – é
constituída a partir de um número decimal?
Soma-se ao número decimal 2(N-1), onde N é o número de bits do Byte. Para o byte de 6
bits, será somado ao número decimal o valor 25 que é igual a 32.
A partir da soma encontrada, determina-se a cadeia binária correspondente fazendo a
conversão de base.
Exemplo: Quais são as cadeias binárias que representam os números +10 e –10, em E2?
10 + 32 = 42  101010
-10 + 32 = 22  010110
Operação inversa – dada a cadeia binária com representação em E2, qual é o decimal
correspondente?
Interpreta-se a cadeia (conversão para a base 10) e subtrai-se 2(N-1).
Exemplos: Quais são os valores decimais correspondentes às cadeias binárias abaixo,
com representação em E2?
101101  45 – 2(N-1) = 45 – 32 = 13
000000  0 – 2(N-1) = 0 – 32 = – 32
111111  63 – 32 = 31

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Qual é a cadeia binária que representa o decimal 0(zero)?


Aplicando a primeira regra: 0 + 32 = 32  (100000)2
E o decimal –1? –1 + 32 = 31  (011111) 2
E o decimal +1? 1 + 32 = 33  (100001) 2
Observação: os binários representados em E2 equivalem aos binários representados em
C2, exceto pelo 1o bit, que é trocado (1 é 0 e 0 é 1).
Exemplo: (-1)10 = 011111 em E2
(-1) 10 = 111111 em C2
Faixa de representação  -2(N-1) <= X <= +(2(N-1) – 1) ou de –31 a +32, em byte de 6 bits
(igual à faixa de variação em C2).

Exercício de Representação de Números Binários


1 - Considere os números decimais 13, -13, 31 e –27.
Determinar as cadeias binárias, em byte de 6 bits) correspondentes às quatro formas de
representação de números binários estudadas – SA; C2; C1; E2.
2 - Dadas as cadeias binárias abaixo, determinar os valores decimais correspondentes
considerando as quatro formas de representação de números binários.
000111 101010 110001 000000 111111

2.4.5 Precisão de números binários em um computador digital


Mais uma vez é bom lembrar que o byte é como se fosse uma caixa de tamanho definido e,
portanto, limitado. Assim, a parte inteira de números tem sua amplitude definida (lembremo-nos
das formas de representação estudadas) e a parte não inteira (fracionária) é truncada, sofrendo
arredondamentos.

2.4.5.1 Aritmética de Ponto Fixo


O nome vem da posição em que “virtualmente” está localizado o ponto que divide a parte inteira
da parte fracionária nos números reais.
Para números inteiros (sem parte fracionária) pode-se entender o ponto fixo como colocado à
direita do byte que armazena a cadeia binária (o número).
Para números reais, pode-se imaginar que o ponto está entre a parte inteira (bits reservados para
armazenar a cadeia binária que representa a parte inteira do número) e a parte fracionária (bits
reservados para armazenar a cadeia binária que representa a parte fracionária do número).
Exemplos:
001100. : decimal +12, em Sinal e Amplitude.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

0 0 1 1 0 0 . 0 0 0 1 0 0 : número Real +12,125 em Sinal e Amplitude

2.4.5.2 Aritmética de Ponto Flutuante


A aritmética de ponto fixo limita muito a amplitude de representação dos números, especialmente
da parte inteira. O tamanho do byte (ou bytes) definido para representar o número é o grande
limitador desse tipo de aritmética.
Veio então, a aritmética de ponto flutuante. Em outras palavras, o ponto que divide a parte inteira
da fracionária não tem lugar definido quando “inserido” nos bytes.
O número passa a ser representado na forma dita “científica”.
N° = mantissa x base exponencial expoente
Nesse tipo de aritmética perde-se em precisão, mas ganha-se em amplitude de representação.
Na maior parte das aplicações em que se trabalha com grandes amplitudes, a precisão não é tão
relevante. Por exemplo, o diâmetro da terra é de 12.756km. Pouco importa se, mais precisamente
é 12.756.000m ou 12.755.999m ou 12.755.000.001mm. Para os cálculos da física, a precisão em
termos de km é suficiente para a maioria das aplicações.
A notação com ponto flutuante atende bem essas aplicações.
Para melhor entendermos o sentido da notação, vamos relembrar como funcionam essas relações
na base 10.
337,412 = 0,337412 x 103 (dividimos a mantissa por mil e multiplicamos a base exponencial por
mil)
Se tivéssemos só 5 posições para representar a mantissa, poderíamos trabalhar com a mesma
ordem de grandeza do número (de forma aproximada) como se ele fosse 0,33741x103
No computador digital as regras são:
 O expoente é representado como um número inteiro nas formas de representação Sinal e
Amplitude ou Excesso de 2(N-1);
 A mantissa é um número com a vírgula implícita à esquerda, representada em Sinal e
Amplitude, Complemento de 2 ou Complemento de 1;
 A base exponencial é uma potência de 2 definida pelo fabricante (2, 4, 8, 16....).
Existem diferentes formas para representação em ponto flutuante, ou vírgula flutuante como é,
também, falado em nossa Língua Pátria. O Padrão IEEE754 define 3 formas: precisão simples,
com 32 bits; precisão dupla com 64 bits; e precisão estendida com 80 bits. (TANENBAUM, A.S.,
Organização Estruturada de Computadores. Anexo B)
Em uma forma com precisão simples, apresentada em LANCHARRO, E.A., LOPEZ, M.G.,
FERNANDEZ, S.P. Informática Básica – Cap. 2. pág. 68 e seguintes, os 32 bits que
representam o número e estão assim distribuídos:

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 1


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

 O bit 31 representa o sinal da mantissa; ele será igual a 0(ZERO) se o número for positivo e
igual a 1(HUM) se o número for negativo
 Do bit 23 ao bit 30 é representado o expoente em excesso de 2(N-1) ou em excesso de 128, uma
vez que para o expoente, N=8;
 Do bit 0 ao bit 22 é representada a mantissa em Complemento de 1;
 A base exponencial é igual a 2;
 O valor zero é representado por todos os dígitos iguais a zero.

sinal expoente mantissa


31 30 2322 0

Atenção para não confundir o sinal do número (bit 31, em precisão simples) com o sinal do
expoente que estará definido no bit 30, em função da forma de representação do expoente.
Números muito grandes, muito maiores que 1, sejam eles positivos ou negativos, terão, em ponto
flutuante, expoente positivo; números muito pequenos, ao contrário, terão expoente negativo.
Exemplo de número com expoente positivo: distância da Terra a Lua, medida em metros = 0,384
x 109 m; exemplo de número com expoente negativo: massa de um átomo de carbono 12 =
1,9926 x 10-26 kg.
Como será a representação do decimal +17 na Aritmética de ponto flutuante?
Esse valor normalizado (número representado com expoente para a base 2 e com a mantissa
menor que 1) é igual a 0,53125x25.
Como chegar ao valor 0,53125? Usamos uma mistura de tentativa e regra de três.
Tentativa: 17 está entre 24 e 25 ou, entre 16 e 32.
Toma-se o valor superior desse intervalo e aplica-se a regra de três:
Se 1 x 25 = 32; quanto vale X para que X x 25 seja igual a 17?
X = 17/32 = 0,53125
Representando o expoente 5 em Excesso de 128 + 5, teremos:
10000101.
A mantissa 0,53125 convertida para a base binária em complemento de 1 é igual a: 0,10001.
A representação em precisão simples será:
0 10000101 10001000000000000000000
Como será a representação do decimal –17?
1 10000101 01110111111111111111111
Inverte-se o sinal da mantissa e os bits da mantissa, uma vez que a representação é em
complemento de 1.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Apenas como informação, com esses 32 bits seria possível representar números negativos entre –
2127 e –2-129 e os números positivos entre +2-129 e +2127.

Exercício de fixação:
Representar o decimal 13,475 em binário com vírgula flutuante, em precisão simples (32 bits).
Representação: do expoente - Excesso de 2(N-1)
da mantissa – Complemento de 1

1) decimal 13,475

1o passo – normalizar o número decimal para a base exponencial igual a 2


Método: Tentativa e Regra de três

13,475 está entre 23 e 24 ou, entre 8 e 16

O valor normalizado será então X = 13,475/16 = 0,8421875 x 24

2o passo - O expoente 4 representado em excesso de 2(N-1) será 10000100

3o passo - A conversão da mantissa para a base binária levará à “dízima periódica”


seguinte:
0,11010111100110011001100.............
Como temos na precisão simples 23 bits disponíveis, podemos representá-la com mostrado
acima ou “truncar” a parte fracionária conforme alguma precisão previamente definida ou
desejada, por exemplo, 10 bits na mantissa. Nesta situação a mantissa será:
0,11010111100000000000000

4o passo – Montar a cadeia binária em vírgula flutuante

0 10000100 11010111100110011001100
ou
0 10000100 11010111100000000000000 para a situação de precisão com 10 bits na
mantissa.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

2.5 ARITMÉTICA BINÁRIA E HEXADECIMAL


2.5.1 Operações com Números Binários
2.5.1.1 Negação
A operação de negação consiste na determinação do número multiplicado por –1. Se o número é
negativo, sua negação retornará um valor positivo; se um número é positivo, sua negação
retornará um valor negativo.
A negação é uma operação bastante útil na computação digital. Ela torna alguns cálculos mais
simples, além de permitir que alguns circuitos eletrônicos possam ser projetados para realizar
operações específicas a um custo menor que no caso em que a negação não fosse empregada.
Essa afirmação vai ficar mais clara no estudo de Circuitos lógicos.
Aplicando o operador NEGAÇÃO - x (-1) – ao decimal - 7, o resultado seria:
- 7 * (-1) = + 7
A operação de Negação se aplica às quatro formas de representação de números binários de
forma diferente.

a) Negação em Sinal e Amplitude


É a mais simples de todas. Como o 1o bit é o de sinal e ele não entra na composição do valor do
número e como a forma de determinação do módulo ou amplitude é a mesma para os valores
positivos e os valores negativos, a negação é feita mudando o bit de sinal; de 0 para 1 ou de 1
para 0.
Ex: Negar a cadeia binária 1 0 0 0 1 1 em SA.
Resposta: 000011
O decimal correspondente à primeira cadeia binária é (- 3) 10 e a cadeia resultante após a aplicação
da operação de negação é (+3) 10.
b) Negação em Complemento de 2
A negação em complemento de 2 é bastante simples. Basta seguir a regra abaixo:
Trocam-se todos os bits da cadeia binária (0 para 1; 1 para 0), da esquerda para a
direita, exceto o último bit 1(hum) e os demais bits que estiverem à sua direita.
Exemplos: negar a cadeia binária 001100 em Complemento de 2.
Resposta: 110100
Etapas para se construir a cadeia binária negada:
- o primeiro e o segundo bits mais à esquerda eram 0’s (zeros) e na negação, passaram a ser
1’s (hums);
- o terceiro bit era 1 e passou a ser zero;
- o quarto bit é um porém, é o último dos bits 1, portanto não sofreu alteração;

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

- o quito e sexto bits são zeros e estão à direita do último bit 1, portanto, não sofreram
alteração.
A “prova” de que a cadeia resposta realmente corresponde à cadeia original negada pode ser feita
interpretando-se as cadeias e levando-as para a base 10(dez).
Pergunta 1: qual é o decimal correspondente à cadeia binária 001100 em Complemento de 2?
Resposta: usando a notação posicional
 0x25 + 0x24 + 1x23 + 1x22 + 0x21 + 0x20 =
= 0x32 + 0x16 + 1x8 + 1x4 + 0x2 + 0x1 =
= 0 + 0 + 8 + 4 + 0 + 0 = (12)10
Pergunta 2: qual é o decimal correspondente à cadeia binária 110011 em Complemento de 2?
Resposta: 1o passo - usando a notação posicional para converter a cadeia binária para a base 10
(processo independente da forma de representação)
 1x25 + 1x24 + 0x23 + 1x22 + 0x21 + 0x20 =
= 1x32 + 1x16 + 0x8 + 1x4 + 0x2 + 0x1 =
= 32 + 16 + 0 + 4 + 0 + 0 = 52
Atenção: este valor 52 não corresponde ao decimal equivalente à cadeia binária 110100
em Complemento de 2; ele faz parte do processo para se determinar essa cadeia binária.
2o passo: subtrai-se de 52, 2N, onde N é o número de bits do byte (6 no nosso caso).
 52 – 26 = 52 – 64 = (-12)10
Conclusão: a resposta à Pergunta 1 é (12)10 e a resposta à Pergunta 2 só poderia ser (-12)
10 uma vez que realizamos a operação de negação da cadeia binária da Pergunta 1.

Caminho de volta: Negar a cadeia binária 110100 em complemento de 2.


Aplicando a regra, os três primeiros bits da esquerda para a direita serão trocados; o quarto bit
sendo o último bit 1(um) não será trocado nem os 0(zeros) à sua direita.
Resposta: 001100 – voltamos à cadeia original que representa o decimal (12)10

c) Negação em Complemento de 1
A negação em complemento de 1 também é bastante simples. Basta seguir a regra abaixo:
Trocam-se todos os bits da cadeia binária (0 para 1; 1 para 0).
Exemplos: negar a cadeia binária 001100 em Complemento de 1.
Resposta: 110011
A “prova” de que a cadeia resposta realmente corresponde à cadeia original negada pode
ser feita interpretando-se as cadeias e levando-as para a base 10(dez).
Pergunta 1: qual é o decimal correspondente à cadeia binária 001100 em Complemento de 1?

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Resposta: usando a notação posicional


 0x25 + 0x24 + 1x23 + 1x22 + 0x21 + 0x20 =
= 0x32 + 0x16 + 1x8 + 1x4 + 0x2 + 0x1 =
= 0 + 0 + 8 + 4 + 0 + 0 = (12)10
Pergunta 2: qual é o decimal correspondente à cadeia binária 110011 em Complemento de 1?
Resposta: 1o passo - usando a notação posicional para converter a cadeia binária para a base 10
(processo independente da forma de representação)
 1x25 + 1x24 + 0x23 + 0x22 + 1x21 + 1x20 =
= 1x32 + 1x16 + 0x8 + 0x4 + 1x2 + 1x1 =
= 32 + 16 + 0 + 0 + 2 + 1 = 51
Atenção no 2: este valor 51 não corresponde ao decimal equivalente à cadeia binária
110011 em Complemento de 1; ele faz parte do processo para se determinar essa cadeia
binária.
2o passo: subtrai-se de 51, (2N – 1), onde N é o número de bits do byte (6 no nosso caso).
 51 – (26 – 1) = 51 – 63 = (-12)10
Conclusão: a resposta à Pergunta 1 é (12)10 e a resposta à Pergunta 2 só poderia ser (-12)
10 uma vez que realizamos a operação de negação da cadeia binária da Pergunta 1.
Caminho de volta: Negar a cadeia binária 110011 em complemento de 1.
Aplicando a regra, trocamos todos os bits 0(zero) por 1(hum) e todos os bits 1(hum) por 0(zero).
Resposta: 001100 – voltamos à cadeia original que representa o decimal (12)10
Nova descoberta: a determinação da cadeia binária de um número negativo em Complemento
de 2 e em Complemento de 1 requer a aplicação de regras que implicam em soma de 2N e 2N – 1,
respectivamente e, em seguida, conversão do número decimal para binário. O resultado é uma
cadeia binária que começa com o dígito 1 e cujos demais dígitos não guardam relação direta
com sua interpretação usando valor posicional e o número negativo que representam.
Conhecendo a operação de negação nessas duas formas, torna-se bem mais fácil representar a
cadeia binária do número positivo e, em seguida, aplicar nessa cadeia a operação de negação.
Exemplo: qual a cadeia binária que representa o número (-19) 10 em complemento de 2, com byte
de 6 bits?
1o passo – determinar a cadeia binária que representa o número decimal positivo (+19)10;
010011
2o passo – aplicar a operação de Negação nessa cadeia binária
101101
Sem fazer contas com 2N chegamos à cadeia binária aplicando a operação de negação.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

d) Negação em Excesso de 2(N-1)


A negação em Excesso de 2(N-1) é semelhante à negação em complemento de 2. A regra é a
mesma:
Trocam-se todos os bits da cadeia binária (0 para 1; 1 para 0), da esquerda para a
direita, exceto o último bit 1(hum) e os demais bits que estiverem à sua direita.
Lembremo-nos de que quando no estudo da representação em Excesso de 2(N-1) chegamos à
conclusão de que as cadeias binárias de uma representação e de outra eram bastante similares
exceto pelo primeiro bit (à esquerda) que era invertido.
Gerando e desfazendo confusões: a cadeia binária em complemento de 2, 001100 é equivalente
ao número decimal (+12)10. E na representação em Excesso de 2(N-1) ?
Aplicando a regra 001100 é igual a 12 unidades na base 10, a esse valor subtrai-se 2(N-1). Como
N = 6 (bits do byte) o resultado da conta será 12-32 = -20. Conclusão 001100 em Excesso de 2(N-
1)
vale (-20)10
Aplicando nosso conhecimento de que as representações em complemento de 2 e em Excesso de
2(N-1) são semelhantes exceto pelo 1o bit, vamos trocar esse primeiro bit na cadeia binária acima
(passamos a representação para complemento de 2) e interpretá-lo ou convertê-lo no decimal
correspondente.
101100 em complemento de 2  (32 + 8 + 4) – 64 = 44 – 64 = (-20)10.

Exercícios de Revisão:
Representação de números binários e Negação de Números binários

1) Determinar as Cadeias binárias (byte de 6 bits), nas representações Complemento de 2 e


Complemento de 1 correspondente aos decimais
–12 e –21.
Utilizar os seguintes caminhos para a determinação das cadeias binárias:
A – regra de formação da cadeia binária;
B – determinar a cadeia correspondente ao número positivo e negar essa cadeia

2) Determinar os decimais correspondentes às cadeias binárias abaixo, supondo representações


em Complemento de 2 e Complemento de 1.
110010 100111
Utilizar os seguintes caminhos para a determinação dos números decimais:
A – regra de formação da cadeia binária;
B – negar as cadeias binárias em cada uma das formas de representação e interpretar
as cadeias positivas.

3) Fazer uma análise crítica dos dois caminhos usados nos exercícios acima.

4) Determinar os decimais correspondentes às cadeias binárias abaixo, supondo representação


em Excesso de 2(N-1)

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

001011 010101
Utilizar os seguintes caminhos para a determinação das cadeias binárias:
A – regra de formação da cadeia binária;
B – transformar as cadeias binária em Excesso de 2(N-1) para Complemento de 2, negar
esta cadeia e interpretar as cadeias positivas

5) Demonstrar que os números decimais 35 e –41 não podem ser representados em nenhuma das
quatro formas de representação em um byte de 6 bits.

6) Determinar as cadeias binárias correspondentes aos decimais acima nas quatro formas de
representação, em byte de 8 bits.

7) Em um byte de 8 bits, quais seriam as amplitudes de representação de números binários nas


quatro formas de representação?

Mais uma descoberta: após conhecer e trabalhar com as quatro formas de representação de
números binários chega-se a mais uma conclusão interessante: dado uma cadeia binária
representando um número negativo em Sinal e Amplitude (1o bit igual a 1), essa mesma cadeia
binária na forma de representação em Excesso de 2(N-1) representa o mesmo número só que com
sinal trocado, ou seja, um número positivo com mesma amplitude.
Essa constatação não é válida para cadeias binárias positivas, em Sinal e Amplitude.

2.5.1.2 Soma de Números Binários


Assim como na base 10, o sistema binário tem algumas operações básicas de soma (fatos
fundamentais) e de subtração que são:

0 1 0 1
Lembrando que o 10 + 0 + 0 + 1 + 1
da última operação 0 1 1 10
não é DEZ e sim um número que, no sistema binário, corresponde a duas unidades.

(*)
0 1 10 1
- 0 - 0 - 1 - 1
0 1 1 0

(*) A subtração (0-1) não é possível dentro do conjunto dos inteiros positivos. A exemplo do que
ocorre no sistema decimal, temos que “tomar emprestado” da ordem imediatamente superior.
Assim, na operação em questão, tomamos uma unidade emprestada da ordem superior que, ao
passar para a ordem que está tomando o “empréstimo” passa a valer o número de unidades

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

iguais à base elevado a 1 (ordem superior), ou 21 (duas unidades). Traduzindo a operação acima
para o sistema decimal, estamos subtraindo duas unidades de uma unidade e o resultado é uma
unidade.

a) Soma em Sinal e Amplitude


1a situação: as duas cadeias binárias a serem somadas têm o mesmo sinal: soma-se as amplitudes;
o sinal do resultado é igual ao sinal das duas parcelas.
Exemplo: somar as cadeias binária 001101 e 000111, em sinal e amplitude.
Os bits de sinal são iguais e indicam que os números são positivos.
As amplitudes serão somadas usando-se as operações básicas acima para cada uma das cinco
ordens (cinco bits da amplitude)

Linha do "vai-um" 1 1 1 1
Amplitude 1 0 1 1 0 1
Amplitude 2 0 0 1 1 1
Soma 1 0 1 0 0

Cuidado com a soma em SA:


A amplitude dos números binários depende do número de bits do byte. Ocorre que se pode
efetuar uma soma de dois binários de mesmo sinal e a amplitude ou módulo resultante não
“caber” em um byte. Nesse caso ocorre o chamado OVERFLOW.
É claro que esse tipo de situação pode ser facilmente resolvido aumentando-se, por exemplo, o
número de bytes em que serão armazenados valores numéricos.
Exemplo de OVERFLOW: somar as cadeias binária 011101 e 001111, em sinal e amplitude.

Linha do "vai-um" 1 1 1 1 1
Amplitude 1 1 1 1 0 1
Amplitude 2 0 1 1 1 1
Soma 0 1 1 0 0

O “vai-um” mais à esquerda sobrou; não existe bit para ele ocupar. Ele seria o primeiro dos seis
de um byte de 6 bits. Porém, como em sinal e amplitude o primeiro bit é de sinal, essa invasão
não é permitida. Mesmo que o fosse, a situação seria inusitada, uma vez que estaríamos somando
dois valores positivos (1o‘s bits iguais a 0) e obtendo como resposta um número negativo.

2a situação: as duas cadeias binárias a serem somadas têm sinais diferentes: subtrai-se do maior a
amplitude do menor; o sinal do resultado é igual ao sinal da cadeia de maior amplitude.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Exemplo: somar as cadeias binária 101101 e 000110, em sinal e amplitude.


Os bits de sinal são diferentes e, observando-se as amplitudes, conclui-se que a cadeia negativa é
a de maior amplitude. Logo, o sinal do resultado será negativo ou com o 1o bit igual a 1.
As amplitudes serão subtraidas usando-se as operações básicas acima para cada uma das cinco
ordens (cinco bits da amplitude)

Linha do
"empréstimo" 10 10
Amplitude 1 0 1 1 0 1
Amplitude 2 0 0 1 1 0
Soma 0 0 1 1 1

Os bits tachados 1 foram, na verdade, emprestados para a ordem imediatamente abaixo, portanto,
emprestaram na verdade, 2 unidades.
Resposta: operação binária 101101 – 00110 = 100111
Correspondente decimal  -13 + 6 = -7

2o cuidado com a soma em SA


As propriedades que valem na aritmética que aprendemos no passado, podem não valer na
aritmética binária computacional. Na aritmética tradicional existe a “Lei associativa da adição”.
Por essa lei, a soma de três números quaisquer é sempre a mesma, independente se a primeira
soma for feita com os dois primeiros valore, com os dois últimos o com os valores extremos. Isto
é:
(X + Y) + Z = X + (Y + Z) = Y + (X + Z)
Exemplo: Somar os três valores +5 ; +28 ; - 17
Pode-se, primeiro, somar +5 e + 28, obter + 33 e, deste valor, subtrair –17. O resultado é +16. Se
fizermos, primeiro a soma dos dois últimos valores (+28 – 17), o resultado será +11 e, a esse
valor somaríamos +5 obtendo +16.
Já na aritmética dentro da CPU – Unidade Central de Processamento, como os números binários
são limitados pelo tamanho do byte, o resultado de uma determinada operação pode não caber no
byte, ou transbordar, ou causar OVERFLOW.
O sentido da cadeia binária resultante de um overflow é semelhante ao conteúdo de uma jarra
de 1 litro de líquido após despejarmos sobre ela, sem qualquer regra, 1 litro de água e uma
garrafa de 750 ml de uma boa cachaça. Qual será a mistura resultante na jarra? Uma água
encachaçada ou uma cachaça aguada? Em qualquer dos casos, qual é o percentual de cada
componente? A resposta não é tão simples assim. Necessitaria de uma análise química. Como
transbordou muito líquido, nada se pode afirmar sobre o que ficou dentro da jarra a não ser que
houve um transbordamento – OVERFLOW.
Usando os mesmos valores acima, vamos efetuar a soma binária em AS, em byte de 6 bits.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

+5  00101
+28  011100
-17  110001
Somando os dois primeiros valores:
1 1 1
Linha do "vai-um"
Amplitude 1 0 0 1 0 1
Amplitude 2 1 1 1 0 0
Soma 0 0 0 0 1

Ocorreu OVERFLOW uma vez que o bit mais à esquerda não cabe no byte ou estaria invadindo o
bit reservado para o sinal.
Se ao invés dos dois primeiros somássemos os dois últimos (subtração das amplitudes) o
resultado seria:
Linha do "empréstimo" 2o nível 1 10
Linha do "empréstimo" 1o nível 10
Amplitude 1 1 1 1 0 0
Amplitude 2 1 0 0 0 1
Soma 1 0 1 0 1 1

Somando-se agora, o primeiro valor ao resultado obtido (Soma 1), teremos:


Linha do "vai-um" 1 1 1 1
Amplitude 1 0 0 1 0 1
Amplitude 2 – Soma 1 0 1 0 1 1
Soma 1 0 0 0 0

Como os bits de sinal são iguais a 0 (zero) a soma binária no computador será: 010000
O decimal equivalente a esse número binário, em AS, é igual a +16. Portanto, neste último caso,
as associações feitas levaram a uma operação com resultado numérico (não deu OVERFLOW).
b) Soma em Complemento de 2

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 2


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

A soma nessa forma de representação de números binários parece ser mais simples do que a soma
em SA. Por que mais simples? Com a soma em complemento de 2 não é necessária atenção aos
sinais dos números nem às suas amplitudes. Somam-se os números como se eles não tivessem
sinal e não estivessem representados em nenhuma das formas de conhecidas de representação. O
resultado deve ser analisado e deve satisfazer a duas regras para ser válido. Caso contrário, se
uma das duas regras não for satisfeita, terá ocorrido o conhecido OVERFLOW.
As regras são:
1) se existe um “vai-um” para fora do bit mais significativo (para fora e à esquerda do byte)
deve haver um “vai-um” para o bit mais significativo (bit com maior valor posicional) e o
“vai-um” para fora do byte deve ser desprezado;
2) se não existe um “vai-um” para fora do bit mais significativo (para fora e à esquerda do byte)
não deve haver um “vai-um” para o bit mais significativo (bit com maior valor posicional).
Se o resultado for válido (não ocorrência de OVERFLOW) a cadeia binária estará em
Complemento de 2 e como tal deverá ser interpretada.
Exemplos:
1) somar as cadeias binárias 001111 e 100011 que equivalem aos números decimais +15 e –
29.
Linha do "vai-um" 1 1 1 1
Número 1 0 0 1 1 1 1
Número 2 1 0 0 0 1 1
Soma 1 1 0 0 1 0

O resultado satisfaz à regra no. 2 ou, em outras palavras, não violou nenhuma da regras. A soma
é, então, a cadeia binária 110010 que, em complemento de 2 vale:
110010 x (-1) = 001110 = (+14)10
Se após negarmos a cadeia binária em complemento de 2 e de ter convertido para a base dez,
encontramos o decimal +14, indica que a cadeia binária em complemento de 2, antes da negação,
era igual ao decimal –14, que é o resultado da operação (+15) + (-29)
2) somar as cadeias binárias 011010 e 111010 que equivalem aos números decimais +26 e –
6.
Linha do "vai-um"
1 1 1 1
Número 1 0 1 1 0 1 0
Número 2 1 1 1 0 1 0
Soma 0 1 0 1 0 0

O resultado satisfez à regra no. 1 ou, não violou nenhuma da regras. A soma é, então, a cadeia
binária 010100 que, em complemento de 2 equivale a 20 unidades na base decimal.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

3) somar as cadeias binárias 001101 e 011000 que equivalem aos números decimais +13 e
+24.
Linha do "vai-um" 1 1
Número 1 0 0 1 1 0 1
Número 2 0 1 1 0 0 0
Soma 1 0 0 1 0 1

O resultado violou à regra no. 2 ou uma vez que, se não houve “vai-um” para fora do bit mais
significativo, não poderia ter havido “vai-um” para o bit mais significativo. Ocorreu um
OVERFLOW. A cadeia binária 101001 não tem sentido, não há como interpretá-la, embora
possamos cair na “tentação” de achar que o resultado equivale ao número decimal –22
(interpretação da cadeia binária em complemento de 2). Não somamos 2 números positivos?
Como é possível obtermos um resultado negativo?
4) somar as cadeias binárias 100101 e 110110 que equivalem aos números decimais –27 e –
10 .

Lin h a do "vai-um "


1 1
Núm e ro 1 1 0 0 1 0 1
Núm e ro 2 1 1 0 1 1 0
So m a 0 1 1 0 1 1

O resultado violou à regra no. 1 uma vez que, houve “vai-um” para fora do bit mais significativo,
e não houve “vai-um” para o bit mais significativo. Ocorreu um OVERFLOW. A cadeia binária
011011, assim com a cadeia binária do exemplo no. 3 não tem sentido, não há como interpretá-la,
embora possamos também cair na “tentação” de achar que o resultado equivale ao número
decimal +27 (interpretação da cadeia binária em complemento de 2). Não somamos 2 números
negativos? Como é possível obtermos um resultado positivo?

c) Soma em Complemento de 1
A soma nessa forma de representação de números binários é bastante semelhante à soma em
complemento de 2. As regras de validação é que são outras. Aqui também não é necessária
atenção aos sinais dos números nem às suas amplitudes. Somam-se os números como se eles não
tivessem sinal e não estivessem representados em nenhuma das formas de conhecidas de
representação. O resultado deve ser analisado e deve satisfazer a três regras para ser válido. Caso
contrário, se uma das regras não for satisfeita, terá ocorrido o conhecido OVERFLOW.
As regras são:

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

1) se existe um “vai-um” para fora do bit mais significativo (para fora e à esquerda do byte)
deve haver um “vai-um” para o bit mais significativo (bit com maior valor posicional) e o
“vai-um” para fora do byte deve ser somado ao resultado;
2) se não existe um “vai-um” para fora do bit mais significativo (para fora e à esquerda do
byte) não deve haver um “vai-um” para o bit mais significativo (bit com maior valor
posicional);
3) se existe um “vai-um” para fora do bit mais significativo (para fora e à esquerda do byte)
e não existir um “vai-um” para o bit mais significativo (bit com maior valor posicional), o
“vai-um” para fora do byte deve ser somado ao resultado e a regra do carry deve ocorrer
até o passo final, ou até o bit mais significativo.
Se o resultado for válido (não ocorrência de OVERFLOW) a cadeia binária estará em
Complemento de 1 e como tal deverá ser interpretada.

Exemplos:
1. somar as cadeias binárias 001111 e 100011 que equivalem aos números decimais +15
e –28.
Linha do "vai-um" 1 1 1 1
Número 1 0 0 1 1 1 1
Número 2 1 0 0 0 1 1
Soma 1 1 0 0 1 0

O resultado satisfez à regra no. 2 ou, em outras palavras, não violou nenhuma da regras. A soma
é, então, a cadeia binária 110010 que, em complemento de 1 vale:
110010 x (-1) = 001101 = (+13)10
Se após negarmos a cadeia binária em complemento de 1 e de ter convertido para a base dez,
encontramos o decimal +13, indica que a cadeia binária em complemento de 1, antes da negação,
era igual ao decimal –13, que é o resultado da operação (+15) + (-28)

2. somar as cadeias binárias 011010 e 111010 que equivalem aos números decimais +26
e –5.

Linha do "vai-um" 1 1 1 1
Número 1 0 1 1 0 1 0
Número 2 1 1 1 0 1 0
Soma 0 1 0 1 0 0
Linha do “vai-um” no
2
Soma (repetição da 1a) 0 1 0 1 0 0

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Unidade que sobrou 1


Soma final 0 1 0 1 0 1

O resultado satisfez à regra no. 1 ou, não violou nenhuma da regras. A soma é, então, a cadeia
binária 010100 que, em complemento de 2 equivale a 20 unidades na base decimal.
3. somar as cadeias binárias 001101 e 011000 que equivalem aos números decimais +13
e +24.
Linha do "vai-um" 1 1 1 1
Número 1 0 0 1 1 0 1
Número 2 0 1 1 0 0 0
Soma 1 0 1 0 0 1

O resultado violou à regra no. 2 ou uma vez que, se não houve “vai-um” para fora do bit mais
significativo, não poderia ter havido “vai-um” para o bit mais significativo. Ocorreu um
OVERFLOW. A cadeia binária 101001 não tem sentido, não há como interpretá-la, embora
possamos cair na “tentação” de achar que o resultado equivale ao número decimal –22
(interpretação da cadeia binária em complemento de 1). Não somamos 2 números positivos?
Como é possível obtermos um resultado negativo?
4. somar as cadeias binárias 100101 e 110110 que equivalem aos números decimais –26
e –9 .

Linha do "vai-um"
1 1
Número 1 1 0 0 1 0 1
Número 2 1 1 0 1 1 0
Soma 0 1 1 0 1 1
Linha do “vai-um”
no 2 1 1
Soma (repetição da
1a) 0 1 1 0 1 1
Unidade que sobrou 1
Soma final 0 1 1 1 0 0

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

O resultado violou à regra no. 3 uma vez que, houve “vai-um” para fora do bit mais significativo,
e não houve “vai-um” para o bit mais significativo. Realizando a soma do bit que sobrou ao
primeiro resultado, a regra do carry não ocorreu até o bit mais significativo.
Ocorreu um OVERFLOW. A cadeia binária 011100 não tem sentido, não há como interpretá-la,
embora possamos, naquela estória da “tentação”, achar que o resultado equivale ao número
decimal +28 (interpretação da cadeia binária em complemento de 1). Não somamos 2 números
negativos? Como é possível obtermos um resultado positivo?
5. somar as cadeias binárias 110000 e 101111 que equivalem aos números decimais –15
e –16 .

Linha do "vai-um"
1
Número 1 1 1 0 0 0 0
Número 2 1 0 1 1 1 1
Soma 0 1 1 1 1 1
Linha do “vai-um”
no 2 1 1 1 1 1
Soma (repetição da
1a) 0 1 1 1 1 1
Unidade que sobrou 1
Soma final 1 0 0 0 0 0

O resultado não violou a regra no. 3 uma vez que, houve “vai-um” para fora do bit mais
significativo, e não houve “vai-um” para o bit mais significativo. Realizando a soma do bit que
sobrou ao primeiro resultado, a regra do carry ocorreu até o bit mais significativo. A cadeia
binária 100000 corresponde ao decimal –31.

d) Soma em Excesso de 2(N-1)


Para a compreensão das regras da soma em Excesso de 2(N-1) é necessário lembrar a regra de
formação da cadeia binária nesta forma de representação. Na determinação da cadeia binária
correspondente a um número decimal X qualquer, soma-se a esse número 2(N-1), onde N é o
número de bits do byte. O resultado decimal é convertido para a base binária e, a cadeia
resultante representa o número binário em Excesso de 2(N-1) equivalente ao decimal X, portanto,
antes da soma de 2(N-1).
Ao somarmos duas cadeia binárias em Excesso de 2(N-1) o resultado será uma cadeia binária. Em
princípio, essa cadeia binária poderá estar “turbinada” com DUAS VEZES 2(N-1) . Por que? Cada
parcela não “carrega” 2(N-1) unidades oriundos da regra de formação da cadeia? O resultado,
portanto, pode conter um excesso de unidades iguais a 2(N-1) .

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

O poderá do parágrafo anterior se justifica porque haverá situações em que as DUAS VEZES 2(N-
1)
nem farão parte da cadeia binária resultante. Nesse caso poderá ser necessário somar 2(N-1) ao
resultado.
Enunciando as regras específicas da soma em Excesso de 2(N-1) e resolvendo alguns exemplo, as
situações acima ficarão mais claras.
A soma em Excesso de 2(N-1) se faz como se as cadeias binárias não tivessem sinal (semelhante às
somas em Complemento de 2 e Complemento de 1). O resultado da soma deve obedecer a uma
das regras abaixo:
1) Se não houver “vai-um” para fora do byte ou à esquerda do bit mais significativo, devem
ser subtraídas 2(N-1) unidades da cadeia binária resultante. Esta cadeia binária representará
o resultado da soma em Excesso de 2(N-1). Caso não haja unidades suficientes para que se
realize essa subtração, ocorrerá OVERFLOW, e a cadeia binária resultante não terá
interpretação.
2) Se houver um “vai-um” para fora do byte ou à esquerda do bit mais significativo, devem
ser somadas 2(N-1) unidades à cadeia binária resultante. Esta cadeia binária representará o
resultado da soma em Excesso de 2(N-1). Caso essa soma provoque um NOVO “vai-um”
para fora do byte ocorrerá OVERFLOW, e a cadeia binária resultante não terá
interpretação.
O “vai-um” para fora dessa segunda regra equivale à desprezar 2N unidades da cadeia
resultante, uma vez que, na nova posição que esse 1 ocuparia (um sétimo bit), o número de
unidades que ele estaria representando seria 2N. É necessário recompor a estrutura de
formação da cadeia, somando a ela 2(N-1) .
ATENÇÃO: a soma em Excesso de 2(N-1), com suas respectivas regras necessita ser testada
com um grande número de exercícios uma vez que ela não consta nas bibliografias ou
referências até agora analisadas. São resultados da análise e interpretação do autor.
Exemplos:
1. somar as cadeias binárias 101111 e 000011 que equivalem aos números decimais +15 e –
29. A resposta será -14
Linha do "vai-um" 1 1 1 1
Número 1 1 0 1 1 1 1
Número 2 0 0 0 0 1 1
Soma 1 1 0 0 1 0

Aplicando a regra 1 devemos subtrair 2(N-1), ou 32 ou 100000 da soma acima.


Soma 1 1 0 0 1 0
2(N-1) 1 0 0 0 0 0
Resultado final 0 1 0 0 1 0

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Para interpretar o valor decimal da cadeia binária 010010 em Excesso de 2(N-1), devemos
converter a cadeia acima e subtrair 2(N-1) ou 32.
Com a conversão da cadeia binária chegamos ao decimal +18. O resultado da soma (+18)+(-32)
= -14, que é o resultado da soma binária em Excesso de 2(N-1).

2. somar as cadeias binárias 111010 e 011010 que equivalem aos números decimais +26 e –
6. O resultado será uma cadeia binária que, em Excesso de 2(N-1) representará o decimal
+20.

Linha do "vai-um"
1 1 1 1
Número 1 1 1 1 0 1 0
Número 2 0 1 1 0 1 0
Soma 0 1 0 1 0 0

Na operação de soma foi um “vai-um” para fora do Byte que, conforme vimos, vale 64 unidades
pela posição que ele ocuparia na cadeia binária. Se desprezarmos esse 1 como o fazemos em
Complemento de 2 estaríamos jogando fora 64 unidades, 32 de cada parcela, uma vez que foi
esse o valor somado no momento de se determinar a cadeia binária equivalente. O resultado ou
soma estaria descaracterizado da propriedade ou regra de criação da forma de complementação.
Dessa forma, devemos somar 32 unidades à soma obtida para que ela tenha a característica da
representação em Excesso de 2(N-1) .

Soma 0 1 0 1 0 0
“Vai-um” para fora 1 0 0 0 0 0
Soma final 1 1 0 1 0 0

O resultado satisfez à regra no. 2 ou. Somando-se 2(N-1) ao resultado, não ocorreu outro “vai-um”
para fora do byte.
Para saber a qual decimal corresponde a cadeia binária Soma final basta aplicar a regra de
formação da base ou: 110100 = (+52)
(+52) – (+32) = +20
3. somar as cadeias binárias 101101 e 111000 que equivalem aos números decimais +13 e
+24. A resposta vai ser um OVERFLOW uma vez que, previamente, sabemos que +37
unidades não “cabe” em um byte de 6 bits em quaisquer das formas de representação
vistas.
Como o objetivo é testar a regra da soma BINÁRIA, teremos:

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Linha do "vai-um"
1 1 1
Número 1 1 0 1 1 0 1
Número 2 1 1 1 0 0 0
Soma 1 0 0 1 0 1

Conforme determina a regra 2, quando ocorre “vai-um” para fora do byte, devem ser somadas 32
unidades ou 100000 ao primeiro resultado. Teremos:
Linha do "vai-um"
1
Soma 1 0 0 1 0 1
2(N-1) 1 0 0 0 0 0
Resultado final 0 0 0 1 0 1

O resultado final violou a regra no. 2 uma vez que, somado 2(N-1) ao resultado, ocorreu um novo
“vai-um” para fora do byte. Ocorreu um OVERFLOW. A cadeia binária 000101 não tem sentido,
não há como interpretá-la.
4. somar as cadeias binárias 000101 e 010110 que equivalem aos números decimais –27 e –
10 . A resposta será OVERFLOW pois sabemos que uma cadeia binária equivalente ao
decimal –37 não cabe em um byte de 6 bits, independente da forma de representação.
Como chegar à situação para interpretar que houve OVERFLOW?
Linha do "vai-um" 1
Número 1 0 0 0 1 0 1
Número 2 0 1 0 1 1 0
Soma 0 1 1 0 1 1

A regra no. 1 diz que, quando não ocorre “vai-um” para forma do byte, devem ser subtraídas da
primeira soma, 32 unidades ou, 100000.
A simples observação da cadeia resultante da primeira soma permite verificar que não é possível
extrair 32 unidades dela porque ela não possui 32 unidades para serem subtraídas. A conversão
da cadeia binária 011011 leva ao decimal 27, que é menor que 32. Como não se pode tirar 32
laranjas de 27 laranjas, ocorreu situação de OVERFLOW.

2.5.1.3 Multiplicação e Divisão Binária

a) Sinal e Amplitude.
0 0 1 1
Operações básicas (fatos)
x x x x
0 1 0 1
0 0 0 1
Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3
0 1 1 1
0 1
FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Regras dos sinais


a) - x - = +
b) - x + = -
c) + x - = -
d) + x + = +

Na multiplicação o risco de ocorrência de OVERFLOW é muito maior que na soma (adição)


binária. Por isso é comum a utilização de dois bytes para receber o produto de dois valores que
ocupam um byte cada um.

Exemplo: multiplicar 001011 por 110011


0 1 0 1 1
Os bis de sinal não estão mostrados na 1 0 0 1 1
multiplicação. Pelas regras dos sinais, a Linha do "vai-um" 1 1 1 1 1
resposta será negativa ou, bit de sinal = 1. 0 1 0 1 1
0 1 0 1 1
A distribuição do resultado nos dois bytes 0 0 0 0 0
seria 0 0 0 0 0
conforme mostrado abaixo: 0 1 0 1 1
100110 0 1 1 0 1 0 0 0 1

110001
bits: mais menos significativos significativos

Na divisão binária, com os recursos vistos até agora, existem dois outros problemas. O primeiro é
que numa divisão entre dois valores inteiros, o resultado não é necessariamente inteiro. O
segundo é que numa divisão entre números, o dividendo, em geral, pode ter uma dimensão maior
que o divisor. É o problema inverso da multiplicação em que o produto tem dimensão maior que
as parcelas.
O segundo problema é de fácil solução: reservam-se o dobro do número de bytes para o
dividendo, em relação ao divisor e ao quociente.
Para resolver o primeiro problema pode-se reservar também o dobro de bytes para o quociente,
sendo metade para armazenar a parte inteira e metade para a parte não inteira. Entre esses grupos
poderíamos imaginar a colocação do ponto.

Exemplo: dividir as cadeias binárias equivalentes aos decimais 137 e –8.

A cadeia binária equivalente ao decimal 137 é 10001001 (conversão de base) e a cadeia binária
equivalente ao decimal 8 é 1000 (o sinal negativo só será considerado na cadeia binária dentro do
byte na forma de representação Sinal e Amplitude).

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

A cadeia binária equivalente ao dividendo poderia ser representada em SA dentro de 2 bytes


assim distribuídos. 000100 001001 e o divisor em um byte 101000.
Na divisão, os sinais são tratados à parte e a divisão se faz apenas pelas amplitudes.

1 0 0 0 1 0 0 1 1 0 0 0
1 0 0 0 1 0 0 0 1
0 1 0 0 1
1 0 0 0
1

A parte inteira da divisão é 10001, que na representação em SA, em um byte de 6 bits ficaria:
110001 . O bit de sinal é igual a um porque o quociente é negativo. Se quisermos obter a
resposta da parte fracionária deveríamos dividir o resto (1) pelo divisor (1000) sucessivamente,
até que o resto seja igual a 0 (zero) ou até que se atinja a precisão desejada.
No caso, vamos fixar a precisão em 5 dígitos binários porque no byte de 6 bits, mesmo para a
parte fracionária, o primeiro bit é de sinal.

1 0 0 0 1 0 0 0
1 0 0 0 0 0 1
0

A parte fracionária do quociente é 0,001. Antes que os cinco bits fossem efetivamente usados, o
resto da divisão deu zero.
Como preencher o byte reservado à parte fracionária?
O primeiro bit é de sinal e, no caso, é igual a 1. Os demais bits são preenchidos da esquerda para
a direita (do mais significativo para o menos significativo) ao contrário do procedimento para a
parte inteira.
A resposta completa da divisão é então:
110001 100100 com a vírgula ou ponto, entre os dois bytes.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 3


FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

2.6 TABELAS DE REPRESENTAÇÃO DE CARACTERES: ASCII, ISO,


UNICODE
No início da era da computação digital surgiram inúmeras formas de associação de bits
com caracteres. Cada fabricante de máquina criava seu próprio código ou associação basicamente
porque desconhecia outro código de outro fabricante.
Uns tiveram mais sucesso que outros; alguns “vingaram” ou venceram; fabricantes
decidiram usar códigos já aceitos de outros fabricantes para facilitar a venda de suas máquinas. E
assim termina a história com alguns poucos códigos ou sistemas de codificação sendo usados
ainda hoje.
Algumas formas de codificação estão sintetizados nas tabelas a seguir:

FIELDATA - código de 6 bits


Bits 543
210 000 001 010 011 100 101 110 111
000 @ C K S ) * 0 8
001 [ D L T - ( 1 9
010 ] E M U + % 2 '
011 # F N V < : 3 ;
100 ^ G O W = ? 4
101 SP H P X > ! 5 .
110 A I Q Y & 6 "
111 B J R Z $ \ 7 _

* 000 101 - SP - espaço

BCD - Binary Coded Decimal- código de 6 bits


Bits 543
210 000 001 010 011 100 101 110 111
000 0 8 + H - Q SP Y
001 1 9 A I J R 1 Z
010 2 B K S
011 3 = C . L $ T
100 4 D ) M * U (
101 5 E N V
110 6 F O W
111 7 G P X

* 110 000 - SP - espaço

Associação dos códigos com bytes lógicos de 6 bits com o sistema octal

Exemplos

BCD 001 011 13 =


010 010 22 B
Prof.: José Eustáquio do Amaral Pereira – 11/08/09 4
FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

ASCII – American Standard Coded for Information Interchange

Código ASCII de 7 bits


Bits
3210 654 000 001 010 011 100 101 110 111
0000 NUL DLE SP 0 @ P \ p
0001 SOH DC1 ! 1 A Q a q
0010 STX DC2 " 2 B R b r
0011 ETX DC3 # 3 C S c s
0100 EOT DC4 $ 4 D T d t
0101 ENQ NAK % 5 E U e u
0110 ACK SYN & 6 F V f v
0111 BEL ETB 7 G W g w
1000 BS CAN ( 8 H X h x
1001 HT EM ) 9 I Y i y
1010 LF SUB * : J Z j z
1011 VT ESC + ; K [ k {
1100 FF FS ` < L \ l |
1101 CR GS - = M ] m }
1110 SOH RS . > N n ~
1111 SI US ? O _ o DEL

EOT - End of transmission


FS - File separator
DEL - delete
LF - avanço de linha
Código EBCDIC de 8 bits
Bits 7654
3210 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0000 NUL DLE DS SP & - { } \ 0
0001 SOH DC1 SOS a j ~ A J 1
0010 STX DC2 FS SYN b k s B K S 2
0011 ETX DC3 c l t C L T 3
0100 PF RES BYP PN d m u D M U 4
0101 HT NL LF RS e n v E N V 5
0110 LC BS EOB UC f o w F O W 6
0111 DEL ETB ESC EOT g p x G P X 7
1000 CAN h q y H Q Y 8
1001 RLF EM \ i r z I R Z 9
1010 SMM CC SM ! :
1011 VT < $ #
1100 FF IFS DC4 ( * % @
1101 CR IGS ENQ NAK + ) `
1110 SOH IRS ACK ; > =
1111 SI IUS BEL SUB | ? "

Associação dos códigos com bytes lógicos de 8 bits com o sistema hexadecimal

1100 1001 C9 I
0110 1111 6F ?

1101 0011 1010 0100 1000 1001 1010 1001


D 3 A 4 8 9 A 9

L u i z
Prof.: José Eustáquio do Amaral Pereira – 11/08/09 4
FACULDADE ESTÁCIO DE SÁ DE BELO HORIZONTE
Curso Superior de Tecnologia em Redes de Computadores
Disc: Arquitetura de Computadores Prof: José Eustáquio do Amaral Pereira

Observação: em cada um dos sistemas de codificação existe um conjunto de bytes que


representam os símbolos da base de numeração decimal. Assim, em EBCDIC o símbolo 9 que
representa NOVE UNIDADES é representado pelo byte de 8 bits 1111 1001; em BCD o byte
lógico de 6 bits que representa esse mesmo NOVE UNIDADES é 001 001. No sistema de
codificação o byte é o símbolo que representa o número.
Percepção: Nove unidades em EBCDIC (Extended, Binary Coded with Decimal Interchanged
Code) equivalem ao byte ou cadeia binária de 8 bits com a configuração 11111001. No sistema
binário (conversão para a base 10) essa cadeia equivale ao valor 249. O número binário
desvinculado da idéia de byte-símbolo permite que se trabalhe de uma forma muito mais racional.
Isso vai ficar claro no estudo da representação e operação de números binários.

Sobre o padrão Unicode


Unicode é um padrão internacional para a representação unificada de caracteres de
diversas linguagens.
Caracteres Unicode são codificados em dois bytes, ao invés de um único byte como no
padrão ASCII adotado em outras linguagens de programação. Dessa forma, é possível representar
um número muito maior de caracteres, permitindo abrigar diversas linguagens.
No entanto, para os usuários que utilizam caracteres do alfabeto latino, não há diferença
perceptível. Os caracteres com valores de códigos hexadecimais entre 0000 e 007F correspondem
à codificação do alfabeto Basic Latin (equivalente a ASCII), que está contida em Unicode. Da
mesma forma, caracteres com valores de códigos hexadecimais entre 0080 e 00FF correspondem
à codificação do alfabeto Latin-1 Supplement. Juntos, esses dois alfabetos constituem a
codificação ISO 8859-1 (Latin-1), parte do Unicode.

Prof.: José Eustáquio do Amaral Pereira – 11/08/09 4

Você também pode gostar