Anda di halaman 1dari 22

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES

Mdulo 1 Sistemas de Numerao

MDULO 1 Sistemas de Numerao


1. Apresentao
Durao de Referncia: 30 horas
Avaliao 2 testes (60%)+ Avaliao contnua (40% )
Este mdulo pretende dotar o aluno com conhecimentos sobre a forma como
os computadores utilizam valores binrios para representar e efetuar operaes
com nmeros inteiros e fracionrios.
Esta matria vai permitir uma melhor compreenso acerca do funcionamento
dos componentes eletrnicos constituintes de um computador e das suas
principais caractersticas.
2. Objetivos de Aprendizagem
Conhecer a estrutura de um Sistema de Numerao e os principais Sistemas
de Numerao
Efetuar a converso de nmeros entre os vrios sistemas de numerao.
Efetuar operaes aritmticas (adio e subtrao) em qualquer base de
numerao. Representar nmeros relativos (positivos e negativos) em cdigo
de complementos.
3. mbito dos Contedos
3.1. Estrutura de um sistema de Numerao.
Noo de smbolo e noo de nmero como uma sequncia de smbolos,
onde os smbolos tm significncia posicional.
3.2. Frmula geral de significncia posicional num sistema de base B:
N = n i = 0 ABii
3.3. Principais Sistemas de Numerao utilizados: binrio, octal, hexadecimal.
3.4. Converso de nmeros representados em qualquer base, para a base
decimal, usando a frmula geral de significncia posicional.
3.5. Converso de nmeros em decimal para outras bases de numerao
atravs do mtodo das divises sucessivas.
3.6. A importncia da base binria como um sistema de numerao com dois
smbolos 0 e 1, de fcil manipulao no contexto da arquitetura de um
computador.
3.7. Operaes aritmticas (adio e subtrao) em qualquer base (base
binria em particular).
3.8. Representao de nmeros relativos (positivos e negativos), usando
cdigo de complementos. Adio e subtrao de nmeros em cdigo de
complementos
3. Bibliografia / Outros Recursos
CUESTA, L.; PADILLA, A.; REMIRO, F., Eletrnica Digital. Amadora:
McGrawHill, 1994. NUNES, Mrio Serafim, Sistemas Digitais, 3 ed.. Lisboa:
Editorial Presena, 1989. RODRIGUES, Pimenta; ARAJO, Mrio, Projeto de
Sistemas Digitais, 2 ed.. Lisboa: Editorial Presena, sd.
TAUB, Herbert, Circuitos Digitais e Microprocessadores. S. Paulo: McGrawHill,
1984.
Laboratrio de eletrnica (hardware).
Retro/Vdeo Projetor.
Meios audiovisuais

214-2015

-1-

V0beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao

Introduo s Bases de Numerao


1. Representao numrica em diferentes bases
1.1 Base 10
A representao numrica comum utiliza a base 10. Isso significa que h 10 algarismos (ou
dgitos) diferentes, denotados pelos smbolos 0 a 9.
Usando apenas estes algarismos podemos representar qualquer nmero. Comeando pelos
nmeros mais simples, representveis apenas por um dgito, temos:
0
1
...
9
10
aqui temos o primeiro acidente de contagem: esgotou-se a capacidade de representao de
nmeros apenas com um dgito - passamos a usar dois dgitos, sendo que o da esquerda tem
mais valor pela posio que ocupa - neste caso tem o seu valor multiplicado por 10, ou seja,
pelo valor da base de numerao utilizada;

11
12
valor 10+2 - o dgito da esquerda tem o seu valor multiplicado por 10;
...
19
20 mais uma vez esgotaram-se os dgitos na primeira posio: aumenta-se 1 na posio seguinte; j
contamos 2 vezes a base, ou seja, vamos em 2x10; 21
..
25
valor 2x10 + 5 : o dgito da esquerda tem o valor multiplicado por 10;
...
99

este o maior nmero com 2 algarismos

100

esgotaram-se agora os dgitos na segunda posio; isso significa que contmos 10 vezes a
base, ou seja 10x10; um dgito na 3 posio vale a base ao quadrado;

...
317
...
999

neste caso, o 3 vale pela base2, o 1 pela base e o 7 pelo seu valor;
maior nmero com 3 algarismos

1000 a posio seguinte vale pela base ao cubo, ou seja 10 3.

1.2 Significado da representao numrica


Em suma, da direita para a esquerda: um algarismo na primeira posio vale por si prprio,
na segunda vale pela base, na terceira pela base ao quadrado, na quarta pela base ao cubo
e assim sucessivamente. Por exemplo: 8317 vale
8x103 + 3x102 + 1x10 + 7
Uma vez que 100 1, podemos uniformizar a representao: 8317
vale 8x103 + 3x102 + 1x101 + 7x100
Em concordncia com esta notao designamos as posies, da direita para esquerda, por
posio 0, 1, 2 e assim sucessivamente. E designamos a potncia respetiva por peso. Assim,
dizemos que um algarismo na posio 0 tem peso 100, ou seja 1; na posio 1 tem peso 101,
ou seja 10; na posio 2 tem peso 102 ou seja 100, etc.
Genericamente, um dgito di na posio i tem peso 10i, ou seja, vale
dix10i

214-2015

-2-

V0beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao

Em geral, dado um nmero com os dgitos:


dn dn-1 d2 d1 d0
o seu valor numrico
:
dn x10n + dn-1 x10n-1 + ... + d2 x102 + d1 x101 + d0 x100

1.3 Contar em base 8 (octal)


O que vimos para a base 10 generaliza-se facilmente para outras bases.
Seja por exemplo a base 8. Em vez de 10 temos agora 8 dgitos - e para no inventar o que
j est inventado, valos represent-los pelos smbolos 0 a 7.
O processo de contagem em tudo semelhante ao usado em base 10. Comeamos com os
nmeros representveis apenas com um algarismo, que agora vo apenas at 7:
0
1
...
7

ltimo nmero representvel apenas com um algarismo;

10 aqui temos o primeiro acidente de contagem; esgotada a capacidade de representao com um


dgito, passamos a usar dois; o dgito da esquerda vale 1xbase; (em decimal seria 1x8)

11
12
nmero 10+2 em octal; (em decimal seria 1x8+2 ou seja o nmero 10)
...
17
20 mais uma vez esgotaram-se os dgitos na primeira posio: aumenta-se 1 na posio seguinte; j
contamos 2 vezes a base, ou seja, vamos em 2xbase (em decimal seria 2x8); 21
...
77

este o maior nmero com 2 algarismos em base 8;

100

contmos base * base vezes; o dgito 1 na terceira posio vale a base2 (em decimal seria 2x82);

101
...
777

maior nmero com 3 algarismos, na base 8;

1000

1.4 Contar em Base 16 (hexadecimal)


Seja agora a base 16. Em base 16 deve haver 16 algarismos; vamos representar os
primeiros 10 da maneira habitual, de 0 a 9 e a partir da vamos usar letras: A, B, C; D E e F.
De resto, o processo de contagem semelhante, sendo que agora os nmeros
representveis com um dgito so vo at F (15 em decimal):
0
1
...

214-2015

-3-

V0beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
9
A
B
C
D
E
F
10
11
12
...
19
1A
...
1B
20
...
99
9A
9B
...
9F
A0
A1
...
FE
FF

nada de especial, aqui; passamos para o 10 dgito, representado pela letra A;

maior valor representvel com um algarismo (em decimal seria o nmero 15);
esgotaram-se os dgitos, logo esgotou-se a capacidade de representao de nmeros s com
um dgito; passamos a usar dois; o 1 da esquerda vale a base (em decimal seria o nmero 16);
nmero 10 + 2, ou seja 1xbase + 2 (em decimal seria 16 + 2);

contmos duas vezes o nmero de dgitos; vamos em 2xbase (em decimal seria 2x16);

nada de especial: a seguir ao algarismo 9 vem o algarismo A;

nada de especial: a seguir ao algarismo 9 vem o algarismo A;

maior nmero com dois dgitos em base 16;

100 contmos (base X base) vezes; vamos em base2 (seria 162 em decimal);
...
FFF maior nmero com 3 algarismos em base 16;
1000

1.5 Contar em base 2 ("binrio")


Especialmente importante para ns, nesta cadeira, a base 2, que tem apenas dois dgitos:
0 e 1. O processo de contagem idntico ao praticado em qualquer outra base. claro a
exiguidade da base leva a que, rapidamente, se gerem sequncias com muitos dgitos:
0
1
10
11
100
110
111
1000

maior nmero com 1 dgito;


esgotada a capacidade de representao com um dgito, passamos a usar dois dgitos; o
dgito da direita vale 1 vezes a base ou seja 2;
nmero maior com dois dgitos;
passamos a trs dgitos; o da esquerda vale base2 (22); 101
maior nmero com 3 algarismos;

1.6 Generalizao da representao numrica

214-2015

-4-

V0beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
O conceito de representao numrica apresentado no ponto 1.1 para a base decimal
generaliza-se facilmente para outras bases.
Em qualquer base um nmero representa-se como uma sequncia de dgitos. Sendo B a
base, um dgito di na posio i tem peso Bi ou seja vale
dixBi
Em geral, dado um nmero com os dgitos:
dn dn-1 d2 d1 d0
o seu valor numrico, dada a base B,
:
dn xBn + dn-1 xBn-1 + ... + d2 xB2 + d1 xB1 + d0 xB0

(1)

Para clarificar a representao e evitar situaes de ambiguidade, explicitamos a base,


usando a seguinte notao:
(312)10 - a sequncia de dgitos 312 na base 10 (312)8
- a sequncia de dgitos 312 na base 8
(312)16
- a sequncia de dgitos 312 na base 16

O valor respetivo de cada um, em decimal, o que resulta da expresso anterior. Assim:
(312)10 = 3x102 + 1x101 + 2x100
(312)8 = 3x82 + 1x81 + 2x80
(312)16 = 3x162 + 1x161 + 2x160
Obviamente os trs nmeros representados so todos diferente. Seria disparate dizer, por
exemplo, "o nmero 312 em base 10 o mesmo nmero 312 em base 8". Todas as
sequncias de dgitos iguais em bases diferentes representam nmeros diferentes (exceto),
obviamente as que tm apenas um dgito). Pode confirmar, por exemplo, que:
(312)10 = (470)8 = (138)16
(202)10 = (312)8 = (CA)16
(786)10 = (1442)8=(312)16

1.7 A parte fracionria


A representao estende-se facilmente para a parte fracionria. Dada uma sequncia de
dgitos na base B
dn dn-1 ... d2 d1 d0 . d-1 d-2 ... d-m
em que o ponto separa a parte inteira e a parte fracionria, o valor associado :
dnBn + dn-1Bn-1 + ... + d2B2 + d1B1 + d0B0 + d-1B-1 + d-2B-2 + ...
Por exemplo, a sequncia 42.57 em decimal vale:
4x101 + 2x100 + 5x10-1 + 7x10-2
Em base 10, o dgito direita do ponto tem peso 10-1, ou seja uma dcima; o dgito seguinte
tem peso 10-2, ou seja uma centsima; e assim sucessivamente. Genericamente, o dgito de
posio i direita do ponto (dita posio -i) tem peso base-i.

214-2015

-5-

V0beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao

Exemplo:
(42.57)10 = 4x101 + 2x100 + 5x10-1 + 7x10-2
(42.57)8 = 4x81 + 2x80 + 5x8-1 + 7x8-2
(4C.A7)16 = 4x161 + 12x160 + 10x16-1 + 7x16-2
(10.01)2 = 2 + 1/4

2. Operaes
2.1 Soma
Contar basicamente tudo o que precisamos para fazer as operaes elementares de somar
e subtrair. Vamos, agora, rever os procedimentos que usamos para a realizao destas
operaes.
Exemplo (em base 10), da direita para a esquerda:
- ao primeiro algarismo, 3, juntamos 2 (a partir de 3 contamos mais 2);
- a partir de 2 contamos mais 5; - a partir de 8 contamos 6, para dar 14;

21823
+ 2652
aqui h um incidente: a contagem ultrapassa 10, ou seja, a base; 2 4 4 7 5
deixamos como resultado o algarismo das unidades 4 e juntamos os
restantes 10 somando 1 na posio seguinte;
dizemos, ento, que h 1 de transporte (ou, informalmente, e vai um);

O mecanismo para somar exatamente igual em qualquer outra base. Vejamos um exemplo
em base 8:
Exemplo (em base 8), da direita para a esquerda:
- 3 e 2 d 5;
- 6 e 5 d 13 (a partir de 6 contamos 5 vezes, ou seja: 7 10 11 12 13 ) como

habitualmente, deixamos o algarismo 3 no resultado e juntamos o 10


fazendo o transporte de 1 para a posio seguinte;
- ...

Outro exemplo, ainda em base 8:


- 3 mais 2 d 5;
- 2 mais 6 (ou, se preferir, 6 mais 2) d 10; ou seja d 0 e vai 1;
- 1 mais 6 mais 5 d 14, ou seja d 4 e vai 1;
- ...

Outro exemplo, agora em base 16:


- 2 mais 3 d 5
- 2 mais 6 d 8
- 6 mais 5 d B (ou seja, contando a partir de 6: 7 8 9 A B )
- ...

214-2015

-6-

2163
+ 252
2435

21623
+ 2562
24405

21623
+ 2562
23B85

V0beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
Outro exemplo, em base 16
- 3 + D d 10 ( D+3 => E F 10 )
- 1 + A + 6 d 11 ( B+ 6 => C D
- 1 + 6 + 5 d C
- F + 2 d 11
- ...

E F 10 11)

2 F6A3
+ 256D
3 1C10

2.1 Subtrao
O mecanismos que usamos vulgarmente para fazer a subtrao aplicam-se tambm, com os
mesmos princpios, quer base 10 quer s outras bases.
Seja uma operao elementar, por exemplo 7-2. A maneira mais bsica de fazer a operao
mais uma vez contar - neste caso contar de baixo (i.e. do subtrativo) para cima (i.e. para o
aditivo). O nmero de vezes que contarmos , justamente, a diferena.
Para fazer a subtrao de nmeros com mais algarismos generalizamos o processo
seguindo da direita para a esquerda. Em cada posio fazemos a diferena entre o algarismo
de cima e o de baixo.
Exemplo: neste caso faramos:
- 2 para 7: conta 3 4 5 6 7, ou seja 5 vezes; - 6 para 3 conta 7 vezes e
vai um de transporte...
- o transporte soma ao 7, assim fazemos 8 para 9...
- ...

2937
- 762
2175

Recorde que, no caso da subtrao, o mecanismo juntar o transporte ao algarismo de


baixo. Ao fazer 6 para 3 estamos na realidade a fazer a diferena para 13 - por consequncia
temos que subtrair 10 na posio seguinte. Podemos fazer isso retirando 1 ao algarismo de
cima ou, como fazemos habitualmente, adicionando 1 ao de baixo.
Salienta-se ainda a situao de transporte evidenciada no seguinte exemplo:
Neste caso ao fazer 7 para 2 h um transporte. O transporte junta-se ao
9 para fazer 10 para 13, havendo por isso um novo transporte.

2932
- 797
2135

Note bem que apesar de nesta situao pensarmos 0 para 3 e realidade


que estamos a fazer 10 para 13; no nos podemos esquecer deste
transporte.

Seja agora o seguinte exemplo em base 8


- 2 para 7 d 5
- 6 para 3 d 5 (conta 7 10 11 12 13, ou seja 5 vezes ) e vai um
- (4+1) para 4 d 7 (conta 6 7 10 11 12 13 14, i.e. 7 vezes) e vai um
- 1 para 2 d 1
Um outro exemplo em base 8
- 2 para 0 d 6 (conta 3 4 5 6 7 10) e vai um;
- 7 + 1 d 10; 0 para 3 d 3, e vai um;
- 5 e 1 d 6; 6 para 4 d 6 e vai um;

214-2015

-7-

2437
- 462
1755

2430
- 572
1636

V0beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
Um exemplo em base 16:
- A para 2 d 8 (conta B C D E F 10 11 12 ) e vai um
- 7+1 d 8; 8 para C d 4;
- 5 para B d 6;
- 0 para C d C;

CBC2
- 57A
C648

1234
- 57A
CBA

Outro exemplo em base 16


2.2 Somar e subtrair em binrio

As operaes em binrio so em tudo semelhantes. A exiguidade do nmero de dgitos faz


com que as operaes sejam muito estilizadas.
Exemplo:
0+1 d 1;
1+1 d 0 e vai 1; 1+1+1 d 1 e vai 1;
...

10110
+ 10111
101101

Na prtica tudo se resume a saber somar dois dgitos ou, no


mximo, trs, quando h transporte. As possibilidade de soma de dois dgitos so apenas:
0+ 0
que d 0
1+ 0
que d 1
1+ 1
que d 0 e vai 1
Na soma de trs dgitos h apenas uma possibilidade adicional:
1+1+1 que d 1 e vai 1

Na subtrao as possibilidades tambm so muito limitadas.


Exemplo:
1 para 1 d 0;
1 para 0 d 1, e vai um;
1 e 1 d 0 (ou seja 10) para 1 (ou seja 11) d 1 e vai um;
1 e 0 d 1 para 1 d 0;
...

101101
- 10111
10110

3. Converso "base" => decimal


Consideremos agora o problema da converso de um nmero de uma base qualquer para
decimal, ou seja, o problema de dado um nmero numa base B obter a representao do
mesmo nmero em base 10.
Para resolver este problema, basta atender forma geral de representao indicada no
ponto 1.6. Dado uma sequncia de algarismos
dn dn-1 ... d2 d1 d0 . d-1 d-2 ... d-m
numa base B o respetivo valor numrico :
anBn + an-1Bn-1 + ... + a2B2 + a1B1 + a0B0 + a-1B-1 + a-2B-2 + ...

214-2015

-8-

V0beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
A frmula genrica de representao de um nmero em formato posicional ento:

Nmero = ai Bi para todo o i desde +n a -n


i

Para converter um nmero para base 10 basta calcular esta expresso. Assim, por exemplo:
(312)10 = 3x102 + 1x101 + 2x100
(312)8 = 3x82 + 1x81 + 2x80
(312)16 = 3x162 + 1x161 + 2x160
(1001) 2 = 1x23 + 0x22 + 0x21 + 1x20

=
=
=
=

Exerccio de aplicao
(4.02)8 = 4x80 + 0x8-1 + 2x8-2
(A.BC)16= 10 + 11x16-1 + 12x16-2
(101.101)2 = 4+1+1/2+1/16

= ...
= ...
= ...

3x100 + 10 + 2 = 312
3x46 + 8 + 2 = 148
3x256 + 16 + 1 = 785
8+1 = 9

4. Converso decimal => "base"


Vejamos agora o problema da converso de decimal para uma outra base. Ou seja o
problema de dado um nmero em Base 10 encontrar a representao do mesmo nmero
noutra base qualquer.
4.1 Parte inteira do nmero
Vamos considerar, primeiro, apenas a parte inteira. Para converter um nmero para base B
aplica-se o seguinte mtodo:
- dividir o nmero, sucessivamente, pela Base at obter o quociente 0;
- o resultante obtm-se juntando, por ordem inversa, os restos dessas divises sucessivas;
Note que, ao fazer uma diviso pela Base o resto necessariamente um nmero menor que
a base -ou seja este resto um algarismo da base. Deste modo, juntando os restos
sucessivos estamos a formar um nmero vlido na Base.
Exemplos:
1) - Converter 12(10) para binrio
Dado um nmero decimal, para convert-lo em binrio, basta dividi-lo
sucessivamente por 2, anotando o resto da diviso inteira (da direita para a esquerda):
12
0

2
6
0

2
3
1

2
1

12(10) = 1100(2)

2) - Representar (1003)10 em octal


1003 8
2 3 125 8
5 15 8
7 1
1003 : 8 = 125 * 8 + 3

214-2015

-9-

V0beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
125 : 8 = 15 * 8 + 5
15 : 8 = 1 * 8 + 7
1 :8=0 *8 +1
o resultado (1753)8.
3) Converter 1003 para hexadecimal
1003 16
2 11 62 16
14 3
5
1003 : 16 = 62 * 16 + 11 (=B)
62 : 16 = 3 * 16 + 14 (=E)
3 : 16 = 0 * 16 + 3
o resultado (3EB)16.

4) Converter nmero 1003 em binrio


1003 : 2 = 501 * 2 + 1
501 : 2 = 250 * 2 + 1 250 : 2 = 125 * 2
+0
... o resultado ( ......
011)2.
4.1.1 - Uso da mquina de calcular
Quando se pretende usar o mtodo dos restos das divises sucessivas, fazendo as contas
de dividir com a mquina de calcular, no nos podemos esquecer que a maioria dos
resultados (quocientes) aparece com parte inteira e parte decimal.
- A parte inteira segue para prxima diviso se for maior do que a base ou fica como
algarismo de maior peso do nmero final.
- A parte decimal deve ser multiplicada pela base para se obter o algarismo inteiro do resto
da diviso.
Exemplo:
Dado 300 (10) converter para a base 8.
Usando a mquina de calcular
- Primeira diviso 300:8= 37, 5
A parte inteira 37 passa para a prxima diviso e a parte decimal 0,5*8=4 o primeiro resto
- Segunda diviso 37:8=4,625
As divises param aqui, porque a parte inteira menor do que a base. O ltimo resto
0,625*8 = 5 .O ltimo quociente 4.
Assim 300 (10) = 454(8)
4.2 Parte fracionria do nmero
Vejamos agora a parte fracionria. Aqui o mtodo consiste em multiplicar o nmero pela
base e recolher parte inteira do nmero resultante da multiplicao. Mais uma vez,
repare que multiplicando um nmero s com parte fracionria (ie com parte inteira 0) pela
base B se obtm um nmero menor que B - ou seja um algarismo da base.
Por exemplo: converter (0.6328125) para octal
0.6328125 * 8 = 5,0625
0.0625 * 8 = 0,5
0,5
* 8 = 4,0 o resultado
(0.504)8.

214-2015

-10-

V0beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao

Assim: em cada passo multiplica-se o nmero pela base. A parte inteira do resultado d um
algarismo do nmero. Com a parte fracionria do resultado repete-se o procedimento.
Eventualmente, como acontece neste exemplo, obtemos um resultado com parte
fracionria 0 e o processo termina.
Nestas condies obtemos uma converso exata - um nmero na base de converso
exatamente igual ao original.
Mas nem sempre o processo corre to bem. Vejamos estas duas converses de um nmero
decimal para binrio:
Exemplo: converter: converter (0.125)10 para binrio
0.125 * 2 = 0.250
0.250 * 2 = 0.5
0.5 * 2 = 1.0
resultado (0.125) 10 = (0.001) 2.
Exemplo: converter (0.2) 10 para binrio
0.2 * 2 = 0.4
0.4 * 2 = 0.8
0.8 * 2 = 1.6
0.6 * 2 = 0.2
0.2 * 2 = 0.4
...
Neste caso o processo no termina. Alis, podemos at concluir que entra num padro de
repetio, originando uma "dzima peridica infinita".
Nestas condies o nmero decimal original no pode ser representado com exatido na
base 2. Eventualmente paramos e ficamos com uma representao aproximada. Por
exemplo, usando um mximo de 20 dgitos na parte fracionria, o resultado aproximado
seria:
(0.0010 0010 0010 0010 001) 2

4.3 Sntese sobre converses


Est agora reunido o conjunto de instrumentos que vamos usar para converso entre bases.
Para converter de uma qualquer base para decimal, utiliza-se a expresso geral indicada no
ponto 3.
Para converter de decimal para uma outra base B usamos o mtodo de divises sucessivas
apresentado no ponto 4.1.
Se o nmero tiver parte fracionria, fazemos a converso separada da parte inteira e da
parte fracionria. A esta ltima aplicamos o mtodo de multiplicaes sucessivas
apresentado no ponto 4.2, tendo em conta que, neste caso, poder no ser possvel obter
uma converso exata.
Finalmente, se o problema for converter entre duas bases B1 e B1 ambas diferentes da base
10, podemos:
1) converter de B1 para base 10 2)
converter da base 10 para B2.

214-2015

-11-

V0beta

5. Bases "binrias"
5.1 Binrio
Tudo o que se disse anteriormente vlido para binrio como para qualquer outra base. Mas
em binrio, havendo apenas dois dgitos, as expresses tomam em geral formas mais
simplificadas que permitem de alguma forma agilizar os processos de raciocnio.
Seja, por exemplo, a converso de um nmero binrio para decimal.
(101 1001)2 = 1x26 + 0x25 + 1x24 1x23 + 0x22 + 0x21 + 1x20
As potncias de 2 multiplicam por 0 ou por 1 - no primeiro caso para dar 0: no segundo caso
para dar a prpria potncia de 2. Assim, podemos escrever de uma forma mais simplificada:
(101 1001)2 = 26 + 24 + 23 + 20
esta expresso acaba por ter uma leitura muito direta: o que interessa so os 1's do
nmero binrio; o valor decimal o que resulta das soma das potncias de 2
correspondentes aos 1 do nmero binrio.
Para este e para muitos outro efeitos convm por vezes ter presente os
valores das potncias de 2. Vale a pena decorar estes valores pelo
menos at 210.

Podemos assim imaginar um nmero binrio numa grelha onde os 1


presentes tm o valor da potncia de 2 correspondente posio onde
se encontram

Posio

10

1024

512

256

128

64

32

16

20
21
22

1
2
4

23
24
25
26

8
16
32
64

27
28
29
210

128
256
512
1024

Peso

Considerando um nmero neste grelha imaginria, o seu valor o que resulta da soma dos
1's que o nmero contm. Por exemplo:
1

= 28 + 26 + 23 + 22= 256 + 64 + 8 + 4

5.2 Converso decimal binrio - mtodo das subtraes

O mesmo tipo de modelo poderia ser usado para converter de decimal para binrio. Trata-se,
afinal de contas, de colocar 1's na grelha at que a "soma" forme o nmero pretendido.
Seja, por exemplo, o nmero 300. claro que seria excessivo colocar um 1 na posio 29
(512) ou mais para esquerda - isso faria desde logo o nmero maior que 512. Correto
colocar um 1 no posio 28(256), tendo em vista formar um nmero maior que 256 (e menor
que 512).

JRG, www.iscte.pt/AC

-12-

T001-Bases-v001b

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
Tendo colocado o primeiro 1 na posio de valor 256, falta obter os 1s respeitantes ao resto
do nmero, ou seja 44 (300-256). Aplicando o mesmo raciocnio, colocamos um 1 na posio
26(32) ficando a sobrar 12. E assim sucessivamente.
A este procedimento de converso de decimal para binrio chamamos mtodo das
subtraes. Em suma o processo consiste em:
- decompor o nmero da soma de uma potncia de 2 com outro fator;
- colocar 1 na posio correspondente potncia de 2 obtida;
- repetir o procedimento para a diferena;
Exemplo: converter 300
300 = 256 + 44 -> 28
44 = 32 + 12 -> 25
12 = 8 + 4
4 =4 +0
resultado

8
1

5
1

-> 23
-> 22

(1 0010 1100)2.

5.3 Octal
A base fundamental para a computao digital obviamente a base 2. As outras bases de
trabalho importantes so a base 8 ("octal") e a base16 ("hexadecimal") - ambas, elas
prprias, potncias de 2.
Acontece que h uma relao muito simples entre a representao de um nmero em binrio
e a representao do mesmo nmero em octal ou hexadecimal (ou, em geral, numa qualquer
outra base que seja potncia de 2). De certa forma a representao nestas bases pode ser
vista como uma forma compacta de representao em binrio e este realmente o seu
principal interesse.
A relao de octal para binrio de um para trs dgitos. Para converter um nmero de octal
para binrio substitui-se cada dgito pela respetiva representao em binrio, usado trs bits.
Ao contrrio, para converter um nmero de binrio em octal, substitui-se cada grupo de 3 bits
por um algarismo octal.
Para estas converses convm decorar a seguinte tabela que lista os nmeros binrios de 0
a 7 (representados em trs bits).

Para "decorar" a tabela basta ter presente a grelha de trs bits.

2014-2015-2016

-13-

V01beta

0
1
2
3
4
5
6
7

4 2 1 DIGITAIS E ARQUITETURA DE COMPUTADORES


SISTEMAS
Mdulo 1 Sistemas de Numerao

Por exemplo:
1

4+1 ou seja 101

4+2 ou seja 110

000
001
010
011
100
101
110
111

Usando esta tabela podemos facilmente converter um nmero de octal para binrio:
(163)8 = (001 110 011)2 = ( 1 110 011)2
(32.04)8 = ( 011 010 . 000 100 ) 2 = ( 11 010 . 000 1 ) 2
Igualmente podemos fazer as converses contrrias, se necessrio juntando 0s esquerda
da parte inteira ou direita da parte fracionria:
( 11001)2 = ( 011 001)2 = (31) 8
(11011.01101) 2 = ( 011 011.011 010) 2= (33.32)8
5.3 Hexadecimal
O interesse da base 16 (hexadecimal) semelhante ao do octal. uma representao
compacta de binrio em que a cada dgito hexadecimnal correspondem 4 dgitos binrios.
Para fazer a correspondncia convm decorar a seguinte tabela.
Para "decorar" a tabela basta ter presente a grelha de colocao,
agora com 4 bits.
8

Exemplo
1

9 = 8 + 1 => 1001
12

= 8+4 => 1100

13

= 8 + 4 + 1 => 1101

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

Com base nestas tabelas podemos facilmente converter nmeros de


hexadecimal para binrio. Exemplo:

( 3A.0E ) 16 = ( 0011 1010 . 0000 1110) 2 = ( 11 1010 . 0000 111) 2

5.4 Converso expedita octal <=> hexadecimal


Para converter rapidamente entre octal e hexadecimal o mais fcil usar a converso
intermdia para binrio.
Assim, por exemplo para converter um nmero de hexadecimal para octal pode:

2014-2015-2016

-14-

V01beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
1) converter para binrio, fazendo corresponder 3 dgitos binrio a cada dgito octal; 2)
reagrupar em grupos de 4 dgitos, se necessrio acrescentando 0 esquerda da parte
inteira ou direita da parte fracionria;
3) converter em hexadecimal, fazendo corresponder um dgito hexadecimal a cada grupo de
4 dgitos binrio
Exemplo:
( 1A.0E ) 16 = ( 0001 1010 . 0000 1110) 2 = ( 011 010 . 000 011 100) 2= (32.034) 8
5.5 Outras consideraes
Muitas vezes no Computador os bits aparecem em grupos ou palavras. Por exemplo,
falamos numa mquina de 32 bits porque determinados elementos fundamentais da
arquitetura da mquina e das operaes nela realizadas ocorrem em blocos de 32 bits.
Seja, por exemplo, uma palavra de 4 bits. Com 4 bits possvel fazer 24 combinaes
diferentes, desde 0000 a 1111. A primeira corresponde ao nmero 0 e a ltima corresponde
ao nmero 15 - o maior nmero inteiro que possvel representar com 4 bits
Em geral, com N bits:
- h 2N combinaes diferentes;
- o maior nmero (inteiro sem sinal) representvel 2N-1.
O nmero seguinte 2N e tem N+1 bits.
Uma sequncia de 8 bits vulgarmente designada por byte. Com um byte h 2 8 ou seja 256
combinaes diferentes. O maior nmero 1111 1111 255 (FF em hexadecimal, 377 em
octal).
O nmero 210, 1024, vulgarmente designada por 1k. Muitas vezes relaciona-se 1k com 10
bits, na medida em que com 10 bits podem-se fazer as tais 210 ou seja 1024 combinaes.
Com 11 bits falamos em 2k e com 12 bits em 4k, ou seja:
211 = 2 x 210 = 2k
212 = 22 x 210 = 4k
Da mesma forma relaciona-se 1 Mega com 20 bits e 1 Giga com 30 bits:
1M = 220 ; 1G = 230 ; 1T=240 --40 bits

6. Representao de nmeros (inteiros) em binrio


6.2 Nmero e sinal
Toda a informao representa no computador em 0s e 1s. No caso dos nmeros inteiros
uma forma natural de representao escrev-los em binrio.
Por exemplo: suponha que temos um computador onde os nmeros so representados em
palavras de 8 bits. Usando uma destas palavras podemos representar nmeros inteiros
(positivos) de 0 a 255 em binrio. Se no chegar, podemos usar duas palavras para
representar cada nmero; sendo assim, os nmeros j podero ir de 0 a 216-1.
Por outro lado pode ser necessrio representar nmeros positivos e negativos. Nesse caso o
plano pode ser o seguinte: usar um bit para o sinal e os restantes para a magnitude.

2014-2015-2016

-15-

V01beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
Seja por exemplo uma palavra com 8 bits. Podamos usar o 8 bit para sinal, representando,
por exemplo os positivos com 0 e os negativos com 1. Assim, por exemplo
0000 1100
1000 1100

seria o +12
seria o -12

Os nmeros representveis seriam de + 27 ou seja + 127. O maior (mais positivo) seria:


0111 1111
e o menor (mais negativo) seria
1111 1111
O nmero 0 teria duas representaes:
0000 0000
digamos o +0 1000
0000 digamos o - 0.

6.3 Representao em complemento


Uma alternativa mais interessante ao modelo anterior a representao em complemento.
6.3.1 Complemento para 1
Definio: o complemento para 1 de um nmero de N bits a diferena do nmero para 2 N-1.
Ou seja, dado um nmero B de N bits seu complemento para 1 , por definio:
(2N-1) - B.
Exemplo: calcular o complemento para 1 do nmero de 4 bits 0110
Faz-se a diferena para 24-1 ou seja, faz-se
1111 - 0110 =1001
A natureza da operao, em que fazemos a diferena para um nmero composto s por 1s,
sugere a seguinte:
Regra prtica: para obter o complemento para 1 basta trocar cada um dos bits do nmero.

6.4.2 Complemento para 2


O complemento para 1 de um nmero de N bits a diferena do nmero para 2N. Ou seja,
dado um nmero B de N bits o seu complemento para 2 , por definio:
2N - B.
Exemplo: calcular o complemento para 1 do nmero de 4 bits 0110
Faz-se a diferena para 24 ou seja, faz-se
10000 - 0110 = 1010

10000
- 0110
1010

Tambm aqui existe uma regra prtica, ligeiramente mais complicada:


Regra prtica: para fazer o complemento para 2 procede-se da direita para a esquerda e:
- mantm-se o nmero original at aparecer o primeiro 1
- a partir da troca-se cada um dos bits;
Como claro, o complemento para 1 igual ao complemento para 2 mais 1. Se preferir pode
tambm fazer o complemento para 2 aplicando a seguinte regras:

2014-2015-2016

-16-

V01beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
- 1) trocar todos os bits (complemento para 1)
- 2) somar 1

6.4.3 Representao em complemento


Muitas vezes os nmeros negativos so representados em complemento. Assim, por
exemplo, se houver 8 bits representam-se os nmeros positivos da maneira normal e os
negativos em complemento.
0
0000
Vamos exemplificar, com 4 bits. Os nmeros positivos so
1
0001
representados da maneira habitual. Para os negativos feito o
2
0010
complemento para 2. Desta forma obteremos a representao indicada 3
0011
na tabela4
0100
5
0101
Exemplo: o -5 representado pelo complemento para 2 de 5, ou seja
6
0110
0101 -> 1011
7
0111
-8 1000
O interesse desta representao que ela permite um tratamento muito -7 1001
uniforme dos nmeros negativos.
-6 1010
-5 1011
Imagine, por exemplo, que queramos fazer a soma de dois nmeros
-4 1100
com sinal. Dependendo do sinal a soma podia, na realidade, ser uma
-3 1101
subtrao. Por exemplo, para fazer 7+(-5) teria que fazer 7-5. A
-2 1110
representao em complemento para dois resolve a questo de forma
-1 1111
simples: basta somar.

Exemplo: 7 + (-5)
0 1 1 1 <- 7
+ 1 0 1 1 <- -5
1 0 0 1 0 <- 2
fazendo a soma e descartando o bit de excesso obtemos, justamente, 2.
Alis o mesmo bom comportamento acontece nestes outros casos:
Exemplo: 5 - 7 , ou seja, 5 + (-7), d -2 (representado em complemento).

0 1 0 1 <- 5
+ 1 0 0 1 <- -7
0 1 1 1 0 <- -2
As contas anteriores justificam-se, tambm, algebricamente, sendo importante nalguns casos
a questo de descartar o bit de excesso - em particular nos casos em que esse bit 1.
Seja por exemplo a diferena de dois nmeros positivos A e B. Neste caso em vez da
diferena A-B podemos fazer a soma com o complemento ou seja A+(2N-B). Isto d A-B+2N
que quase o mesmo resultado. Nesta situao ao descartar o bit de excesso estamos
justamente a subtrair 2N. Assim, obtemos A+(2N-B) - 2N que exatamente A-B.

2014-2015-2016

-17-

V01beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
0 1 1 1 <- 7 A
+ 1 0 1 1 <- -5 24-B
1 0 0 1 0 <- 2
A+(24-B)-24 (24 seria o valor do bit de excesso descartado)

Fica como exerccio validar o mesmo raciocnio noutras circunstncias. Por exemplo:
3-(-2) = 5

fazemos a soma com o complemento de -2 ou seja fazemos:


A + ( 2N- ( 2N-B) ) = A+B

3-5=-2

fazemos a soma com o complemento de 5, ou seja fazemos:


A + ( 2N-B) = 2N- ( A-B)
obtendo o resultado em complemento;

-2-3=-5

fazemos a soma do complemento de ambos, ou seja fazemos


( 2N-A)+( 2N-B) - 2N
(por haver excesso)
obtendo o resultado em complemento;

6.4.4 Overflow
Seja como for, a capacidade de representao dos nmero em binrio sempre limitada.
Isso quer dizer que podemos fazer operaes comuns (designadamente somas) de nmeros
vlidos que dariam como resultado nmeros j no representveis.
Por exemplo, se tivermos 8 bits e nmeros sem sinal o maior nmero representvel 255.
Somando 140 + 140 obteramos 280 que j no representvel - seriam precisos 9 bits. Nesta
situao o resultado efetivo da operao (8 bits) seria 24.

1 0 0 0 1 1 0 0
+ 1 0 0 0 1 1 0 0
1 0 0 0 1 1 0 0 0
Nestas circunstncias em que operando dois nmeros vlidos se obtm um nmero no
representvel diz-se que estamos numa situao de overflow. Neste caso a situao fcil
de reconhecer: h overflow se o bit de excesso der 1.
Tratando-se de nmeros com sinal o overflow pode acontecer em duas situaes: fazendo
uma operao que daria um nmero positivo maior do que o maior nmero positivo
representvel; ou fazendo operao que daria um nmero negativo menor do que o menor
nmero positivo representvel.
Seja de novo a situao com nmeros de 4 bits.
O primeiro caso protagonizado por uma soma de
0 1 0 1 <- 5
nmeros positivos cujo resultado daria maior do + 0 1 0 1 <- 4
que 7 (e que seria interpretvel como nmero
0 1 1 1 0 <- -2
negativo !).

2014-2015-2016

-18-

V01beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
1 0 1 1 <- -5
+ 1 0 1 0 <- -6
1 0 1 0 1 <- 5
O segundo caso protagonizado pela soma de dois nmeros negativos cujo
resultado seria menor que -8 (e que seria interpretvel como nmero positivo
!).

7. Representao de caracteres
7.1 Cdigo ASCII
Nos computadores digitais o texto tambm, naturalmente, representado em bits. A
estratgia neste caso codificar cada um dos caracteres que podem compor o texto, ou seja,
representar cada caracter por uma sequncia de bits nica e distinta.
A codificao clssica para este efeito a que consta da tabela designada por cdigo ASCII.
O cdigo ASCII original usa 7 bits para representar cada caracter.
Genericamente, um texto uma sequncia de caracteres. Por exemplo, o texto representado
na figura constitudo pela seguinte sequncia de caracteres:
letra O letra l
letra a
Ola Mundo,
um caracter de mudana de linha
bla, bla
letra M letra u
...
Usando o cdigo ASCII cada um destes bits seria representado por 7 bits. De acordo com a
Tabela este texto poderia ser representado pela sequncia de bits: 100 1111
110 1100
110 0001
000 1010
110 1101
...
7.2 Particularidades importantes
O cdigo ASCII tem algumas caractersticas importantes que interessa saber e que alis tm
um papel essencial no processamento de caracteres.
Note para comear que os primeiros caracteres so especiais - correspondem a caracteres
de controlo, sem representao visvel. O termo "de controlo" significa que o objeto que trata
o caracter o interpreta como um "comando" e no como um smbolo para "escrever". Alguns
destes caracteres so conhecidos: por exemplo o caracter 7 o bell (campainha); quando
recebido por um terminal dever originar um som. Os caracteres 10 e 13 so usados para
controlar as mudanas de linha. Por exemplo, uma impressora ao receber um caracter CR
(000 1101) deve "voltar ao incio da linha" e ao receber o caracter LF (000 1010) deve
"mudar de linha".
Estes mesmos caracteres so, em muitas circunstncias, usados nos ficheiros de texto para
assinalar as mudanas de linha. Os detalhes dependem do editor de texto e do sistema
operativo. Por exemplo, num comum ficheiro de texto em Unix a mudana de linha
assinalada pelo caracter 10 - tambm conhecido por \n que a sua representao simblica
na linguagem C.

2014-2015-2016

-19-

V01beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
importante notar que no cdigo ASCII os grupos de algarismos, letras maisculas e letras
minsculas tm cdigos sequenciais. O cdigo ASCII dos algarismos vai do 0 ao 9 por ordem
numrica. O cdigo ASCII das letras minsculas vai do a ao z por ordem numrica. O cdigo
ASCII das letras maisculas vai do A ao Z por ordem numrica.
Esta circunstncia est na base dos processos de ordenao dos caracteres
(designadamente da ordenao alfabtica) e da aritmtica de caracteres.
Por exemplo, podemos dizer que a letra B maior que a letra A, uma vez que o cdigo ASCII
de B representa um nmero binrio maior que o cdigo ASCII de A.
Em muitas circunstncias representa-se o cdigo de um caracter escrevendo o caracter entre
' '. Por exemplo
'a'
representa o cdigo ASCII da letra a
'5'
representa o cdigo ASCII do algarismo 5
'+'
representa o cdigo ASCII do sinal +
Assim, usando esta notao, podemos dizer que
'B' > 'A'
Os mesmos princpios permitem fazer "contas" com caracteres - na realidade so contas com
o cdigo mas que tm significado lgico em termos dos caracteres envolvidos.
Assim, por exemplo, sabendo que o cdigo ASCII da letra B 100 0010 sabe que o da letra
C 100 0011 e o letra F 100 0110. Quer dizer:
'C' = 'B' + 1
'F' = 'C' + 3
Outro exemplo: pode obter o cdigo ASCII da letra f somando ao cdigo ASCII da letra a a
diferena entre o cdigo ASCII de F e o de A. Ou seja, usando a mesma representao:
'f' = 'a' + ( 'F' - 'A')
Muitas vezes necessrio converter os caracteres que representam algarismos no valor
numrico correspondente. O valor numrico de um caracter obtm-se fazendo a diferena
para o caracter '0'. Por exemplo
'3'-'0' = 3
ou seja a diferena entre o cdigo ASCII do caracter '3' e do caracter '0' , justamente, 3.
Repare ainda que no cdigo ASCII os ltimos 4 bits representam o nmero binrio
correspondente ao algarismo. Por exemplo, os ltimos 4 bits do cdigo ASCII do algarismo
7 so 0111 e representam, justamente, o nmero binrio 7.

7.3. O 8 bit: paridade


Normalmente os computadores usam palavras 8 bits ou mltiplos de 8 bits. Isto faz com que
sobre um bit na representao de cada caracter.
Este bit de sobra pode ter vrias utilidades. Uma delas ser usado como bit de paridade.
Imagine que est a transmitir texto sobre uma linha com rudo. Pode acontecer que a
transmisso adultere algum dos bits, levando os recetor a obter alguns caracteres errados.
Uma das formas de minimizar este problema usar o 8 bit como bit de paridade. Assim, por
exemplo, ao mandar um caracter cujo cdigo ASCII tenha um nmero par de 1s o 8 bit ir a

2014-2015-2016

-20-

V01beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao
0 e no caso contrrio ir a 1. Nestas condies o recetor, confrontando o caracter recebido
com o bit de paridade pode detetar erros de transmisso.
Exemplo: o mesmo texto com bit de paridade
1 100 1111
0 110 1100 1
110 0001
...

7.4 Cdigo ASCII de 8 bits


Outra utilizao do 8 bit a extenso do prprio cdigo ASCII. Usando o 8 bit podem-se
acrescentar mais 128 caracteres ao cdigo original, ficando assim o cdigo com 256
caracteres. Esta possibilidade tem sido usada, em diversas variantes, para introduzir os
caracteres especiais, por exemplo os acentuados.

A imagem abaixo representa a tabela ASCII completa

2014-2015-2016

-21-

V01beta

SISTEMAS DIGITAIS E ARQUITETURA DE COMPUTADORES


Mdulo 1 Sistemas de Numerao

2014-2015-2016

-22-

V01beta