Você está na página 1de 14

1

Captulo V
Sistemas Numricos
1 Introduo
Em captulos anteriores estudamos diversas funes lgicas. No prximo
captulo veremos que operaes aritmticas como soma e subtrao de
nmeros binrios podem ser implementadas atravs da combinao de
funes lgicas. Estas funes lgicas aritmticas, quando reunidas em um
nico CI, constituem uma Unidade Lgica e Arimtica (ULA) ou, em ingls, ALU
(Arithmetic and Logic Unit). Uma ULA um componente lgico fundamental de
um microprocessador, e todas as operaes aritmticas por ela realizadas so
efetuadas com nmeros binrios.
Neste contexto, o presente captulo estuda a aritmtica com nmeros binrios e
a converso entre nmeros em base binria e nmeros em outras bases, como
as bases octal, decimal e hexadecimal.
2 Nmeros Decimais
Nmeros em base decimal constituem os nmeros com os quais
naturalmente estamos habituados a trabalhar. O termo naturalmente surge do
fato de possuirmos dez dedos nas mos, o que levou os povos antigos que
deram origem a nossa civilizao a adotarem um sistema de contagem em
base dez.
Um nmero em uma base numrica qualquer pode ser decomposto em uma
soma de potncias da base, ponderadas por um dos dgitos do conjunto
de dgitos que definem a base.
Por exemplo, consideremos o nmero decimal 8281 271. . Na base decimal o
conjunto de dgitos
{ } 9 8 7 6 5 4 3 2 1 0 , , , , , , , , , , e estes dgitos constituem os
Fatores de Ponderao de cada Potncia da Base. Da, este nmero pode
ser decomposto na forma:
Potncia da
Base
2
10
1
10
0
10
1
10
2
10
3
10
4
10
Fator de
Ponderao
2 7 1 . 8 2 8 1
ou, em termos analticos:
4 3 2 1 0 1 2
10 1 + 10 8 + 10 2 + 10 8 + 10 1 + 10 7 + 10 2 = 8281 271.
(1)
2
Com um nmero decimal formado por N casas ou dgitos decimais
podemos efetuar a contagem numrica de at
N
10 objetos. Por exemplo, para
2 = N podemos enumerar objetos de 0 a 99 , totalizando 100 = 10 = 10
2 N
objetos.
3 Nmeros Binrios
Na base binria o conjunto de dgitos
{ } 1 0, , e estes dgitos constituem os
Fatores de Ponderao no somatrio de Potncias da Base (
n
2 ) que
representa analiticamente o nmero.
Cada dgito binrio do conjunto
{ } 1 0, denominado bit (binary unit).
Por exemplo, o nmero binrio 1101 101. pode ser decomposto na forma:
Potncia da
Base
4 2 1
2
1
4
1
8
1
16
1
Fator (bit) de
Ponderao
1 0 1 . 1 1 0 1
ou, em termos analticos:
4 2 1 0 2
2 1 + 2 1 + 2 1 + 2 1 + 2 1 = 1101 101.
(2)
Para converter um nmero binrio em decimal basta efetuar o somatrio de
potncias
n
2 cujo bit de ponderao seja 1:
10
8125 5 = 16 1 + 4 1 + 2 1 + 1 + 4 = 1101 101 . .
2
(3)
3
Associado a qualquer nmero binrio existem os conceitos de Bit Mais
Significativo (MSB Most Significant Bit) e de Bit Menos Significativo
(LSB Least Significant Bit). Por exemplo, para o nmero 1101 101. , os
MSB e LSB das partes inteiras e fracionais so aqueles associados s maiores
potncias
n
2 de cada parte:
Parte Inteira Parte Fracional
Potncia da
Base
4 2 1
2
1
4
1
8
1
16
1
Nmero Binrio
1 0 1 . 1 1 0 1

MSB

LSB

MSB

LSB
Com um nmero binrio formado por N bits podemos efetuar a contagem
numrica de at
N
2 objetos. Por exemplo, para 4 = N podemos enumerar
objetos de 0 a 15, totalizando 16 = 2 = 2
4 N
objetos:
Nmero Binrio de 4 bits
3
b
(MSB)
2
b
1
b
0
b
(LSB)
Nmero
Decimal
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9
1 0 1 0 10
1 0 1 1 11
1 1 0 0 12
1 1 0 1 13
1 1 1 0 14
1 1 1 1 15
Tabela 1: Contagem binria de 0 a 15. Os bits em vermelho mostram os
instantes da contagem em que necessrio lanar mo do recurso do bit
vai-um (carry) em conseqncia de ter sido esgotado a capacidade de
contagem dos bits menos significativos utilizados at o instante em
considerao.
4
3.1 Converso Decimal para Binrio
Para converter para binrio as partes no-fracional e fracional de um nmero
decimal utiliza-se, respectivamente, os mtodos conhecidos como Diviso
Repetida e a Multiplicao Repetida.
Por exemplo, para converter o nmero decimal 3125 45. em binrio,
primeiramente decompomos o nmero na soma das partes no-fracional e
fracional: 3125 0 + 45 = 3125 45 . . .
Da, aplicamos a Diviso Repetida parte no-fracional:
Figura 1: Converso do
nmero
10
45
para seu
equivalente em binrio
atravs do mtodo
Diviso por 2 Repetida.
A seguir, aplicamos a Multiplicao Repetida parte fracional:
5
Figura 2: Converso do nmero
10
3125 0.
para seu equivalente em binrio
atravs do mtodo Multiplicao por 2 Repetida.
Portanto,
2 10
0101 101101 = 3125 45 . .
.
4 Aritmtica Binria Entre Nmeros sem Sinal
4.1 Adio
Para efetuar a adio B A+ entre duas palavras binrias A e B
executa-se entre cada bit de A e respectivo bit de B uma das 4 possveis
operaes bsicas abaixo definidas, de acordo com o valor do bit de A e
respectivo bit de B :
0 0 0 = +
1 1 0 = +
1 0 1 = +
10 1 1 = + O 1 no resultado o vai-um (carry) gerado
por ter sido esgotado a capacidade de contagem.
O carry deve ser acrescentado soma dos bits
imediatamente mais significativos esquerda
daqueles que deram origem ao carry .
6
Exemplo 1: Calcule as somas binrias (a) 11 11+ (b) 10 100 + (c) 11 111+
(d) 100 110 + fazendo simultaneamente a soma dos nmeros decimais
equivalentes.
Soluo:
4.2 Subtrao
A maneira mais eficiente para efetuar a subtrao B A entre duas
palavras binrias A e B executar a operao
{ } B A
II
C +
onde
{}
II
C o
operador denominado Complemento de 2. A operao
{}
II
C equivalente
a acrescentar o sinal ao nmero binrio.
A operao
{ } B
II
C efetuada sobre uma palavra binria B dada por
{ } { } 1 + = B B
I II
C C , onde
{ } B
I
C a operao de inverso (NOT) do valor
lgico de cada bit da palavra binria B (operao conhecida como
Complemento de 1).
Por exemplo, a diferena B A entre os nmeros
10 2
6 = 0110 = A
e
10 2
4 = 0100 = B
dada por:
{ } { } { } 1 + 1011 + 0110 = 1 + 0100 + 0110 = 1 + + = + =
I I II
C C C B A B A B A
(4)
Que resulta em:
0 0 1 1
1 0 0 0 +
1 1 0 1
prosseguindo:
( )
10
2 = 0 1 0 0 1
0 0 1 1 +
0 1 1 0
carry o descartar
7
Alternativamente, podemos implementar a operao
{ } B
II
C atravs do
seguinte procedimento: Efetuamos a leitura da palavra binria B da direita
para a esquerda at encontrarmos o primeiro 1 e a seguir invertemos o
valor lgico de todos os bits esquerda do primeiro 1.
Por exemplo, vamos supor que queremos achar o Complemento de 2 do
nmero binrio
10 2
22 = 10110 = A
. Utilizando a tcnica descrita no pargrafo
anterior temos
{ } 01010 = 10110
II
C . Se o resultado estiver correto, ento
{ } 00000 = + A A
II
C , porque a operao
{ } A
II
C equivalente a efetuarmos o
acrscimo do sinal negativo, isto ,
{ } A
II
C
. Seno, vejamos:
( ) 0 0 0 0 0 1
0 1 0 1 0 +
0 1 1 0 1
carry o descartar
5 Aritmtica Binria Entre Nmeros com Sinal em Complemento de 2
5.1 Adio A+B
Soma-se ambos os nmeros e descarta-se o carry. Por exemplo, sejam as
seguintes somas de nmeros de 8 bits:
! A e B so positivos:
! |A| > |B| com B < 0:
! |A| < |B| com B < 0:
8
! A e B so negativos:
! Overflow (ocorre quando o nmero de bits necessrio para representar a
soma excede o nmero de bits dos nmeros sendo somados):
Nota: No exemplo acima, o nmero resultante 183 requer 8 bits de magnitude
para ser representado. No entanto, na aritmtica em Complemento de 2 o MSB
(o 8 bit no caso) o bit representativo do sinal, sendo a magnitude
representada pelos bits menos significativos restantes direita. Portanto, neste
exemplo, ocorre a adio de um carry ao MSB responsvel pelo sinal,
invalidando o resultado (overflow) na aritmtica em Complemento de 2. Note
que somente pode ocorrer overflow quando A e B so positivos ou A e B so
negativos.
5.2 Subtrao A - B
Executa-se
{ } B A
II
C +
e descarta-se o carry.
Exemplo 2: Calcule as seguintes somas de nmeros de 8 bits:
Soluo:
9
6 Nmeros Hexadecimais
Um nmero em base binria apresenta o inconveniente de necessitar um
grande nmero de dgitos para sua representao. Por exemplo, o nmero 9
em base decimal representado por um nico dgito
10
9
, mas se representado
em base binria so necessrios 4 dgitos (bits):
10 2
9 = 1001
.
Note que quanto maior for a base menor ser o nmero de dgitos da
base necessrios para a representao do nmero.
Uma forma conveniente para a representao de nmeros binrios a base
16 (base hexadecimal), porque 16 uma potncia inteira de 2 o que, conforme
veremos, facilita bastante a converso entre as duas bases.
Com um nmero hexadecimal formado por N dgitos podemos efetuar a
contagem numrica de at
N
16 objetos. Por exemplo, para 1 = N podemos
enumerar objetos de 0 a 15, totalizando 16 = 16 = 16
1 N
objetos:
10
Tabela 2: Contagem hexadecimal de 0 a 15 e equivalentes decimal e binrio.
Note que na base hexadecimal o conjunto de dgitos possveis
{ } F E, D, C, B, A, 5,6,7,8,9, 0,1,2,3,4, .
Como em qualquer base numrica, o vai-um (carry) na base hexadecimal
ocorre em conseqncia de ter sido esgotado a capacidade de contagem dos
dgitos menos significativos. Por exemplo, a continuao da contagem
hexadecimal da Tabela 2 seria:
6.1 Converso Binrio para Hexadecimal
Comeando da direita para esquerda, subdivide-se o nmero binrio em
grupos de 4 bits (nibbles), e substitui-se pelo equivalente hexadecimal da
Tabela 2. Se no for possvel formar um grupo completo de 4 bits esquerda
do nmero binrio, acrescenta-se 1,2 ou 3 zeros para tanto.
11
Exemplo 3:
6.2 Converso Hexadecimal para Binrio
Executa-se o processo inverso do apresentado na Seo 6.1, isto ,
substitui-se cada dgito hexadecimal pelo nibble equivalente de acordo com a
Tabela 2.
Exemplo 4:
6.3 Converso Hexadecimal para Decimal
Exemplo 5:
12
Exemplo 6:
6.4 Converso Decimal para Hexadecimal
Exemplo 7:
7 Nmeros Octais
Uma outra forma conveniente para a representao de nmeros binrios a
base 8 (base octal), porque 8 uma potncia inteira de 2 o que, conforme
vimos para a base hexadecimal, facilita a converso entre as duas bases.
Na base octal o conjunto de dgitos possveis
{ } 5,6,7 0,1,2,3,4, .
A enumerao de objetos na base octal como segue:
...
13
7.1 Converso Octal para Decimal
Exemplo 8:
Converter para decimal o nmero
8
2374
.
Soluo:
7.2 Converso Decimal para Octal
Exemplo 9:
Converter para octal o nmero
10
359
.
Soluo:
14
7.3 Converso Octal para Binrio
Substitui-se cada dgito hexadecimal pela palavra binria de 3 bits
equivalente, de acordo com a Tabela 3 a seguir:
Tabela 3: Equivalncia entre dgito octal palavra binria correspondente.
Exemplo 10:
7.4 Converso Binrio para Octal
Comeando da direita para esquerda, subdivide-se o nmero binrio em
grupos de 3 bits, e substitui-se pelo equivalente dgito octal da Tabela 3. Se
no for possvel formar um grupo completo de 3 bits esquerda do nmero
binrio, acrescenta-se 1 ou 2 zeros para tanto.
Exemplo 11:

Você também pode gostar