Anda di halaman 1dari 11

UNIVERSIDADE CATLICA DE BRASLIA - UCB

Bacharelado em Cincia da Computao BCC


Arquitetura de Computadores I

2 SISTEMA BINRIO E CONVERSO DE BASES


2.1 Sistema Binrio

Conforme estudamos na Aula 1, desde a arquitetura de von Neumann, os computadores so


construdos utilizando-se a lgica binria, ou seja, dgitos 0 e 1. Ns, seres humanos, estamos
acostumados com o sistema decimal. Dessa forma, ao lermos um valor binrio iremos, intuitivamente, tentar
convert-lo para a dimenso decimal para melhor visualizar a quantidade ali expressa. A utilizao da base
binria na computao se deve ao trabalho de Claude Shannon, em 1948, sobre a Teoria Matemtica
da Comunicao. Embora no esteja no escopo desta disciplina o estudo completo dessa teoria, vale para
nosso estudo o seguinte:
Se utilizar a base 2, as unidades resultantes podem chamar-se dgitos binrios, ou, abreviadamente,
bits (BInary digiT), termo sugerido por J.W.Tukey. Assim, um dispositivo com duas posies estveis (ou
dois estados estveis: ligado/desligado ; fechado/aberto; sim/no) pode armazenar um bit de informao. N
desses dispositivos podem armazenar N bits, j que o nmero total de estados possveis 2N e log22N =
N.[SHANNON, 1948].

Com dois bits, tem-se 4 estados, ou seja, 22 = 4 Com trs bits, tem-se 8 estados, ou seja, 23 = 8
Qde Bits Qde Bits

0 0 0 0 0

0 1 0 0 1
Estados possveis
1 0 0 1 0

1 1 0 1 1
Estados possveis
1 0 0

1 0 1

1 1 0

1 1 1
N
Ou seja, sendo N a quantidade de bits utilizados, tem-se 2 (Base 2) estados possveis:
Qde de bits Estados possveis
1 21 = 2 Ao observar os estados possveis, percebe-se que eles no so
2 22 =4 compatveis com a base decimal, com a qual estamos habituados a
lidar. Ou seja, no sistema decimal, seus 10 algarismos possibilitam
3 23 = 8 representar ou 10, ou 100, ou 1000 ..... estados diferentes.
4 24 = 16 Dessa forma, h a necessidade de representar a mesma quantidade
5 25 = 32 de estados da tabela ao lado em outras bases que no a binria.
6 26 = 64 Tipicamente, em computao, alm da base 2, utilizam-se as
bases 8 (octal) e 16 (hexadecimal).
7 27 = 128
8 28 = 256
9 29 = 512
10 210 = 1024

BCC Arquitetura de Computadores I 1


Para facilitar a nossa manipulao com valores binrios, em cincia da computao tambm
utilizamos outras duas bases: octal e hexadecimal. Mas, lembre-se, internamente o computador sempre
trabalhar com valores binrios.

Base Quantidade de Estados Dgitos

2 binria 2 01

8 octal 8 01234567

16 - hexadecimal 16 0123456789ABCDEF

Conforme o diagrama abaixo, pode-se perceber que tanto a base 8 quanto a 16 preservam o nmero de
estados da informao em log2.
Base 16
Base 8
Base 2

0 0 0 0 0 0 0
Valor binrio: 2 estados representado
0 0 0 1 1 1 1 por 1 bit ( log22 = 1).
Valor octal: 8 estados representador
0 0 1 0 2 2 por 3 bits (log28 = 3).
0 0 1 1 3 3 Valor hexadecimal: 16 estados
representados por 4 bits (log216=4).
0 1 0 0 4 4

0 1 0 1 5 5

0 1 1 0 6 6

0 1 1 1 7 7

1 0 0 0 8

1 0 0 1 9

1 0 1 0 A

1 0 1 1 B

1 1 0 0 C

1 1 0 1 D

1 1 1 0 E

1 1 1 1 F

Base 10

0 0 0 0 0 Com a Base 10 no possvel representar todos os


estados possveis uma quantidade inteira N de bits
0 0 0 1 1 onde log 2 2N = N.
0 0 1 0 2

0 0 1 1 3 Shannon explica em seu trabalho que para se utilizar a


base decimal para armazenar a informao, seria
0 1 0 0 4 necessrio um dispositivo que conseguisse armazenar
10 estados distintos. Embora o dgito decimal equivale
0 1 0 1 5
a 3 e 1/3 dgitos binrios, na prtica, a construo de
0 1 1 0 6 dispositivos de chaveamento com dois estados muito
mais vivel.
1 1 1 1 7

1 0 0 0 8

1 0 0 1 9

BCC Arquitetura de Computadores I 2


2.2 Converso entre Bases Decimal e Binria.

2.2.1 Sistemas de Numerao

Segundo [MONTEIRO 2007], os sistemas de numerao so divididos em no-posicionais


(algarismos romanos) e posicionais (algarismos arbicos). No primeiro, a noo de quantidade expressa por
um smbolo que representa uma quantidade fixa. Para determinar uma grandeza numrica, deve-se reunir os
smbolos, conforme o valor que cada um representa, at completar o nmero: MCMLXXXVIII. No segundo,
h smbolos para representar grandezas unitrias e, para representar quantidades que excedem a
possibilidades dos smbolos, cada smbolo ocupa outra posio para quantificar esse valor: 2, 20, 200, 2.000
e 20.000. Neste exemplo, o algarismo 2, dependendo da posio, pode representar: duas unidades, duas
dezenas, duas centenas, dois milhares e duas dezenas de milhares respectivamente.
Assim, cada posio corresponde ao algarismo na potncia de base 10:
BASE Potncia Valor na Base 10 Exemplo:
256.398

10 0 1 8 x 100 8

10 1 10 9 x 101 90

10 2 100 3 x 102 300

10 3 1.000 6 x 103 6.000

10 4 10.000 5 x 104 50.000

10 5 100.000 2 x 105 200.000

Ou seja, 256.398 = (2 x 105) + (5 x 104) + (6 x 103) + (3 x 102) + (9 x 101) + (8 x 100)

Assim, sendo um nmero N na Base 10 (N10), cada posio (unidade, dezena, centena, etc) ser representada
por um algarismo A multiplicado pela base elevada a potncia de nmeros de algarismos -1:
N10 = A x 10 NumAlgarismo -1 + .... + A x 103 + A x 102 + A x 101 + A x 100 + A x 10-1 + A x 10-2 ....

BCC Arquitetura de Computadores I 3


2.2.2 Converso Decimal para Binrio (N10 para N2)

Dado N10, para convert-lo para N2 :


N10 2

r Q10 2 Divide-se N10 pelo valor da base at o quociente for


menor que o divisor (base a ser convertida).
r Q10 2

r Q10 2

r Q10 < 2
O valor na Base 2 ser lido do quociente (bit mais
significativo) e, na ordem, os demais valores de
resto at o primeiro valor (bit menos significativo)

Exemplo: Converter 13110 para Base 2:


131 2

1 65 2

1 32 2

0 16 2

0 8 2

0 4 2

0 2 2

0 1

13110 = 100000112

2.2.3 Converso Binrio para Decimal (N2 para N10)

N10 = N2 x 2 (b- 1) + ... +N2 x 21 + N2 x 20 Toma-se a quantidade de bits (b) e multiplica o bit
menos significativo por 20, o segundo bit por 21, at o
bit mais significativo por 2 (b -1)

Exemplo: Converter 100000112 para Base 10:


Mais Menos
significativo significativo

1 0 0 0 0 0 1 1

1 x 27 + 0 x 26 + 0 x 25 + 0 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20
1 x 128 + 0 x 64 + 0 x 32 + 0 x 16 + 0x8 + 0x4 + 1x2 + 1x1
128 + 2 + 1 = 131

BCC Arquitetura de Computadores I 4


2.2.4 Mtodo prtico para converso N10/N2 e N2/N10:

Monte uma tabela com as potncias de 2 (o valor da potncia depende do valor que se deseja
converter);
Preencha cada posio com as potncias da base 2 do bit menos significativo para o mais significativo;

29 28 27 26 25 24 23 22 21 20

512 256 128 64 32 16 8 4 2 1

- Para converter de N2/N10: 11001011012 =


29 28 27 26 25 24 23 22 21 20

512 256 128 64 32 16 8 4 2 1


1 1 0 0 1 0 1 1 0 1

= 1 x 512 + 1 x 256 + 128 x 0 + 64 x 0 + 32 x 1 + 16 x 0 + 8 x 1 + 4 x 1 + 2 x 0 + 1 x 1 = 81310


Ou, soma-se apenas os valores na tabela que correspondem ao binrio 1 na respectiva posio:
= 512 + 256 + 32 + 8 + 4 + 1 = 81310

Para converter N10/N2 : 113 10


-Define-se a dimenso da tabela conforme o nmero do qual se quer converter. O esquema abaixo
mostra como dimensionar a tabela binria.

Nmero de posies Valor Mximo na Base 10

1 1 21 - 1

2 3 22 - 1

3 7 23 - 1

4 15 24 - 1

5 31 25 - 1

6 63 26 - 1

7 127 27 - 1

8 255 28 - 1

9 511 29 - 1

10 1023 210 - 1

BCC Arquitetura de Computadores I 5


- Para converter 113, tem-se de utilizar a tabela com 7 posies:

26 25 24 23 22 21 20

64 32 16 8 4 2 1

- Verifica-se se 113 maior ou igual ao maior valor de tabela. Se for, marque o bit igual a um na
posio testada e subtraia de 113 o respectivo valor decimal. Repita essa operao at o bit menos
significativo.

- No caso, 113 maior que 64, ento, marque o bit igual a 1 e subtraia 64 de 113:

2 2 2 2 2 2 2
6 5 4 3 2 1 0

64 32 16 8 4 2 1
1 Se 113 >= 64; Ento faa 113 64 = 49 e marque bit = 1.

1 1 Se 49 >= 32; Ento faa 49 32 = 17 e marque bit = 1

1 1 1 Se 17 >= 16; Ento faa 17 16 = 1 e marque bit = 1

1 1 1 0 Se 1 >= 8; Seno passe para prxima posio e marque bit = 0

1 1 1 0 0 Se 1 >= 4; Seno passe para prxima posio e marque bit = 0

1 1 1 0 0 0 Se 1 >= 2; Seno passe para prxima posio e marque bit = 0

1 1 1 0 0 0 1 Se 1 >= 1; Ento faa 1 - 1 = 0 e marque bit = 1. Valor final = 0.

11310 = 11100012

BCC Arquitetura de Computadores I 6


3 BASES OCTAL E HEXADECIMAL
Dando continuidade ao assunto da Aula 2, nesta aula iremos trabalhar com as bases numricas octal e
hexadecimal.
Revisando:
Base Quantidade de Estados Dgitos

2 binria 2 01

8 octal 8 01234567

16 - hexadecimal 16 0123456789ABCDEF

3.1 Base Octal (N8)

3.1.1 Converso Decimal para Octal (N10 para N8)

N10 8

r Q10 8 Divide-se N10 pelo valor da base at quociente for


menor que o valor da base a ser convertida.
r Q10 8

r Q10 8

r Q10 < 8
O valor na Base 8 ser lido do quociente (mais
significativo) e, na ordem, os demais valores de
resto at o primeiro valor do resto (menos
significativo)

Exemplo: Converter 13110 para Base 8:


131 8

3 16 8 13110 = 2038

0 2

3.1.2 Converso de Octal para Decimal (N8 para N10)

N10 = N8 x 8 (o - 1) + ... +N8 x 81 + N8 x 80 Toma-se a quantidade de dgitos octais e multiplica o


dgito menos significativo por 80, o segundo dgito
por 81, at o digito octal mais significativo por 8 (o -1).
Converter 26728 para Base 10:
Mais Menos
significativo significativo

2 6 7 2
2 x 83 + 6 x 82 + 7 x 81 + 2 x 80
2 x 512 + 6 x 64 + 7x8 + 2x1 1024 + 384 + 56 + 2 = 146610
BCC Arquitetura de Computadores I 7
3.1.3 Mtodo prtico para converso entre N10/N8 e N8/ N10

a) Decimal/Octal
579310 =

84 83 82 81 80

4096 512 64 8 1 Base 10

1 3 2 4 1 Base 8

5793 ( 1 x 4096) = 1697 (3 x 512) = 161 ( 2 x 64 ) = 33 ( 4 x 8 ) = 1 ( 1 x 1 ) = 0


579310 = 132418

b) Octal/Decimal
177568=

84 83 82 81 80

4096 512 64 8 1 Base 10

1 7 7 5 6 Base 8

177568 = (1 x 4096) + (7 x 512) + (7 x 64) + (5 x 8) + (6 x 1) = 8174 10


177568n= 817410

BCC Arquitetura de Computadores I 8


3.2 Base Hexadecimal

3.2.1 Converso de Decimal para Hexadecimal (N10 para N16)

N10 16

r Q10 16 Divide-se N10 pelo valor da base at quociente for


menor que o valor da base a ser convertida.
r Q10 16

r Q10 16

r Q10 < 16
O valor na Base 16 ser lido do quociente (mais
significativo) e, na ordem, os demais valores de
resto at o primeiro valor do resto (menos
significativo).
Ateno: 10=A; 11 = B; 12=C ; 13=D ; 14=E e 15=F.

Exemplo: Converter 93510 para Base 16:


935 16

7 58 16 93510 = 3A716

10 3

3.2.2 Converso de Hexadecimal para Decimal (N16 para N10)

N10 = N16 x 16 (h 1) + ... +N16 x 161 + N16 x 160 Toma-se a quantidade de dgitos hexadecimais e
multiplica o dgito menos significativo por 160, o
segundo dgito hexadecimal por 161, at o digito
hexadecimal mais significativo por 16 (h -1).
Exemplo: Converter BABA16 para Base 10:
Mais Menos
significativo significativo

B A B A

11 x 163 + 10 x 162 + 11 x 161 + 10 x 160


11 x 4096 + 10 x 256 + 11 x 16 + 10 x 1 45056 + 2560 + 176 + 10 = 4780210

BCC Arquitetura de Computadores I 9


3.2.3 Mtodo prtico para converso entre N10/N16 e N16/ N10

a) Decimal/Hexa: ( A= 10 ; B = 11 ; C = 12 ; D = 13 ; E = 14 ; F = 15)
5035710 =

164 163 162 161 160

65536 4096 256 16 1 Base 10

0 12 (C) 4 11 (B) 5 Base 16

50357 (12 x 4096) = 1205 ( 4 x 256) = 181 ( 11 x 16) = 5 (5 x 1) = 0


5035710 = C4B516

b) Hexa/Decimal: ( A= 10 ; B = 11 ; C = 12 ; D = 13 ; E = 14 ; F = 15)

DADA16 =

164 163 162 161 160

65536 4096 256 16 1 Base 10

0 D A D A Base 16

DADA16 = (13 x 4096) + (10 x 256) + (13 x 16) + (10 x 1) = 5602610

DADA16 = 5602610

BCC Arquitetura de Computadores I 10


3.3 Converso entre Binrio, Octal e Hexadecimal:

a) Binrio/Octal :
Forme grupos de 3 bits (partindo da direita para esquerda) e faa as converses para octal.
Ex: 1110101101
|001|110|101|101
1 6 5 5 => 11101011012 = 16558

b) Binrio/Hexa:
Forme grupo de 4 bits (da direita para esquerda) e faa as converses para hexa.

Ex: 1110101101
|0011|1010|1101
3 A D => 11101011012 = 3AD16

c) Hexa/Octal (utilizando binrio como base comum)

45AEF16 = 10553578

| 4 | 5 | A | E | F |
|0100|0101| 1010| 1110 | 1111| => 01000101101011101111 2 => |001|000|101|101|011|101|111
1 0 5 5 3 5 7 => 1055357 8

BCC Arquitetura de Computadores I 11

Anda mungkin juga menyukai