Você está na página 1de 41

ELECTRÓNICA DIGITAL

SISTEMAS DE NUMERAÇÃO
ARITEMÉTICA BINÁRIA
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

Ficha Técnica
Título: Electrónica Digital - Sistemas de Numeração e Aritmética Binária

Autor: Carlos Sousa

Coordenador de Edição: Luís Bomfim Barreiros

Editor: Edições Gustave Eiffel

Capa, Composição Gráfica e Acabamentos: Luís Bomfim Barreiros

Setembro de 2003 - 1ª Edição.

II
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

ÍNDICE
1. - INTRODUÇÃO .................................................................................................................................. 5
2. - SISTEMAS DE NUMERAÇÃO.......................................................................................................... 6
2.1 - Tabela dos primeiros 16 números representados nas Bases 2, 8, 16 e 10 .............................. 7
3. - BASE 2 OU BINÁRIA ........................................................................................................................ 8
3.1 - Conversão Binário - Decimal ..................................................................................................... 8
3.2 - Conversão Decimal - Binário ..................................................................................................... 8
4. - BASE 8 OU OCTAL .......................................................................................................................... 9
4.1 - Conversão Octal - Decimal ........................................................................................................ 9
4.1 - Conversão Decimal - Octal ........................................................................................................ 9
4.2 - Conversão Octal - Binário ........................................................................................................ 10
4.3 - Conversão Binário - Octal ........................................................................................................ 10
5. - BASE 16 OU HEXADECIMAL ........................................................................................................ 11
5.1 - Conversão Hexadecimal - Decimal.......................................................................................... 11
5.2. - Conversão Decimal - Hexadecimal......................................................................................... 12
5.3 - Conversão Hexadecimal - Binário ........................................................................................... 12
5.4 - Conversão binário - hexadecimal ............................................................................................ 13
4.5 - Conversão Octal - Hexadecimal e Hexadecimal - Octal.......................................................... 13
6. - CÓDIGO BCD ................................................................................................................................. 14
6.1 - Conversão Decimal – BCD ...................................................................................................... 14
6.2 - Conversão BCD - Decimal ....................................................................................................... 14
6.3 - Conversão Binário - BCD ......................................................................................................... 14
6.4 - Conversão BCD - Binário ......................................................................................................... 14
7. - EXERCÍCIOS RESOLVIDOS.......................................................................................................... 15
8. - EXERCÍCIOS PROPOSTOS .......................................................................................................... 21
9. - ADIÇÃO DE NÚMEROS BINÁRIOS ............................................................................................... 22
10. - SUBTRACÇÃO DE NÚMEROS BINÁRIOS ................................................................................. 23
11. - ADIÇÃO DE NÚMEROS EM HEXADECIMAL .............................................................................. 24
12. - SUBTRACÇÃO DE NÚMEROS HEXADECIMAIS ....................................................................... 24
13. - EXERCÍCIOS RESOLVIDOS........................................................................................................ 25
14. - EXERCÍCIOS PROPOSTOS ........................................................................................................ 26
15. - DAS PORTAS LÓGICAS ATÉ AO SOMADOR DIGITAL ............................................................. 27
16. - CÓDIGO DE COMPLEMENTOS .................................................................................................. 30
17. - CÓDIGO DE GRAY ...................................................................................................................... 32
18. - DETECTORES DE ERROS SIMPLES ......................................................................................... 34

III
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

19. - EXERCÍCIOS RESOLVIDOS ........................................................................................................ 35


20. - EXERCÍCIOS PROPOSTOS ........................................................................................................ 39

IV
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

1. - INTRODUÇÃO

Este capítulo pretende dotar o leitor com conhecimentos sobre os sistemas de


numeração mais usados nas abordagens aos sistemas digitais. Dá-se também
aqui importância à aritmética binária e chega-se, com ela, à compreensão de
circuitos TTL que efectuam adições e subtracções entre valores binários. São
também alvo neste capítulo, códigos binários e circuitos básicos que permitem
detectar erros na comunicação entre sistemas. Por último apresenta-se uma
secção com exercícios resolvidos e outra com exercícios propostos, para que o
leitor possa treinar e por à prova os conhecimentos adquiridos.

5
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

2. - SISTEMAS DE NUMERAÇÃO

Definido um conjunto de símbolos ou algarismos, qualquer quantidade pode ser


quantificada e representada por uma sequência desses algarismos. Posto isto,
podem definir-se quantos sistemas de numeração (ou bases ponderadas)
quisermos, mas no âmbito dos sistemas digitais será bom sabermos trabalhar com
as bases 2 ou binária, 8 ou octal e 16 ou hexadecimal. Para se entrar no estudo
destas bases é bom relembrar alguns conceitos respeitantes à base mais
conhecida, a decimal ou 10. Então vejamos:

A base decimal ou 10, tem 10 algarismos 0, 1, 2, 3 .... 9 (por isso se chama


decimal), podendo com esses algarismos representar qualquer quantidade. Se
escrevermos o número 1996 na base decimal, como saber ou como calcular a
quantidade por ele representada?

É fácil... vejamos:

N = A0 * B0 + A1 * B1 + A2 * B2 + A3 * B3 + .....

será a quantidade em decimal, A0, A1, A2, A3 serão os algarismos de pesos 100,
101, 102, 103 (porque estamos na base 10) começando da direita para a esquerda,
e B será a base onde estamos a trabalhar, ou seja neste caso, a base decimal.

Logo, temos que:

N = A0 * B0 + A1 * B1 + A2 * B2 + A4 * B3

N = 6 * 100 + 9 * 101 + 9 * 102 + 1 * 103

N = 6 * 1 + 9 * 10 + 9 * 100 + 1 * 1000

N = 6 + 90 + 900 + 1000

N = 1996

tal como seria de esperar.

Todos estes cálculos e teorias são válidos para as outras bases, diferindo apenas
a quantidade de algarismos de cada uma.

6
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

2.1 - Tabela dos primeiros 16 números representados nas Bases 2, 8, 16 e 10

Decimal (10) Binária (2) Octal (8) Hexadecimal (16)

0 0000 0 0

1 0001 1 1

2 0010 2 2

3 0011 3 3

4 0100 4 4

5 0101 5 5

6 0110 6 6

7 0111 7 7

8 1001 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

7
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

3. - BASE 2 OU BINÁRIA

A base 2 ou binária é uma base que possui os algarismos 0 e 1 como seria de


esperar. Os algarismos da base dois também se designam por bits. Apesar do
número reduzido de algarismos qualquer quantidade pode aqui nesta base ser
representada. É muito fácil converter para o seu respectivo decimal um número
representado na base 2 e vice-versa.

3.1 - Conversão Binário - Decimal

A conversão binário - decimal é feita usando a fórmula atrás referida aplicada à


base 2:

N = A0 * B0 + A1 * B1 + ... + An * Bn

Onde B é sempre 2 e A0 é o bit mais à direita do número.


Como exemplo, converter o número (1100) na base 2 para a base 10.

N = 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23

N = 0 * 1 + 0 * 2 + 1 * 4 + 1 * 8

N = 0 + 0 + 4 + 8

N = 12

Logo (1100)2 é igual a (12)10.

3.2 - Conversão Decimal - Binário

A conversão decimal - binário é feita fazendo divisões sucessivas por 2 do número


a converter até que o quociente seja 0, aproveitando os restos dessas divisões
como se mostra no seguinte exemplo:

Converter para binário o valor 40 em decimal:

(40)10 = (?)2

40 2 Note-se que quando o quociente da penúltima divisão


0 20 2 dá 1 continuamos a dividir mesmo sabendo que o
0 10 2 quociente agora de 1 a dividir por 2 é 0. para ficarmos
0 5 2 com o último resto que é 1. Deve fazer-se sempre
1 2 2 assim. Escrevendo agora os restos de baixo para cirna,
0 1 2 temos (101000)2 como o número (40)10 representado
1 0 na base 2. Logo (40)10 = (101000)2.

8
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

4. - BASE 8 OU OCTAL

A base 8 ou octal é uma base semelhante às outras, mas agora existem 8


algarismos para representar as quantidades: 0, 1, 2, 3, 4. 5, 6, 7.
É muito fácil converter para o seu respectivo decimal um número representado na
base 8 e vice-versa.

4.1 - Conversão Octal - Decimal

A conversão octal - decimal é feita usando a fórmula atrás referida aplicada à base 8:

N = A0 * B0 + A1 * B1 + ... + An * Bn

Onde B é sempre 8 e A0 é o algarismo mais à direita do número.


Como exemplo, converter o número (131) na base 8 para a base 10:

N = 1 * 80 + 3 * 81 + 1 * 82

N = 1 * 1 + 3 * 8 + 1 * 64

N = 1 + 24 + 64

N = 89

Logo (131)8 = (89)10.

4.1 - Conversão Decimal - Octal

A conversão decimal - octal é feita fazendo divisões sucessivas por 8 do número a


converter, até que o quociente seja 0, aproveitando os restos dessas divisões
como se mostra no seguinte exemplo onde se converte o valor 40 decimal para a
base octal:

40 8 Note-se que o quociente da primeira divisão é 5 e continuamos a


0 5 8 dividir, mesmo sabendo que o quociente agora de 5 a dividir por 8 é
5 0 0, para ficarmos com o último resto que é 5. Deve fazer-se sempre
assim. Escrevendo agora os restos de baixo para cima. temos 50
que é o número (40)10 representado na base 8.

Logo (40)10 é igual a (50)8

9
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

4.2 - Conversão Octal - Binário

Existem duas formas de fazer esta conversão:

A primeira consiste em converter o número em base octal para a base decimal e


depois converter o resultado em base decimal para base binária. Chama-se a este
processo o método das bases intermédias. Neste caso, converter da base octal
para decimal já foi visto e da base decimal para a base binária também, pelo que
não me vou referir a esses assuntos outra vez.

O outro processo é mais fácil, mas exige um total conhecimento da tabela dos
primeiros 16 números nas bases 10, 2, 8, 16, mostrada anteriormente. Sendo
assim se quisermos escrever o número (50)8 na base binária, temos que escrever
os seus algarismos um a um em binário a três bits. Assim temos 5 na base binária
é 101 e 0 na base binária é 000, e portanto o número (50) 8 é (101000)2 onde os
primeiros 3 bits representam o 5 e os últimos três bits representam o 0 do número
(50)8.

4.3 - Conversão Binário - Octal

Aqui também existem duas formas de fazer esta conversão:

Uma visa o uso de bases intermédias, ou seja, converter o número em base


binária para base decimal e depois converter esse resultado de base decimal para
base octal, estando estas conversões analisadas anteriormente, pelo que, não me
vou referir a elas.

O outro processo será eficaz se conhecer a tabela dos 16 primeiros números


apresentada anteriormente. Como tal, basta partir o número binário em partes de
três bits da direita para a esquerda e ver quanto vale cada parte em octal. Por
exemplo, o número (1000)2 partido em partes de três bits da direita para a
esquerda fica 1|000 ficando em octal o número (10)8, pois (000)2 = (0)8 e (1) 2 =
(1)8. Não se assuste de ficar com uma parte só com um bit, pois ela facilmente se
transforma em três bits (001) acrescentando zeros à esquerda.

10
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

5. - BASE 16 OU HEXADECIMAL

A base hexadecimal é uma base semelhante às outras, mas agora existem 16


algarismos para representar quantidades: 0, l, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Aqui, talvez fique assustado, mas não existe fantasma nenhum. Como na base é
hexadecimal (16), há necessidade de só com um algarismo representar 16
quantidades diferentes incluindo a quantidade 0, temos de arranjar mais
algarismos. Assim, as quantidades de 0 até 9 representam-se com os algarismos
habituais e as quantidades de 10 até 15 com as letras de A até F. Por isto se
chamam a números escritos nesta base códigos alfanuméricos.
É muito fácil converter para o seu respectivo decimal um número representado na
base hexadecimal e vice-versa.

5.1 - Conversão Hexadecimal - Decimal

A conversão hexadecimal - decimal é feita usando a fórmula atrás referida


aplicada à base 16:

N = A0 * B0 + A1 * B1 + ... + An * Bn

Onde B é sempre 16 e A0 é o algarismo mais à direita do número.


Como exemplo, converter o número (BA)16 na base hexadecimal para a base
decimal.

N = A * 160 + B * 161

N = 10 * 1 + 11 * 16

N = 10 + 176

N = 186

Logo (BA)16 = (186)10 (nunca se esqueça que A representa a quantidade 10 em


decimal e B a quantidade 11).

11
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

5.2. - Conversão Decimal - Hexadecimal

A conversão decimal - hexadecimal é feita fazendo divisões sucessivas por 16 do


número a converter até que o quociente seja 0, aproveitando os restos dessas
divisões como se mostra no seguinte exemplo: (255)10 =(?)16

255 16 Escrevendo agora os restos de baixo para cima, temos 15 e 15, no


095 15 16 entanto temos que os substituir pelos algarismos correspondentes
15 15 0 que são F e F formando o número (FF) 16 que é a representação de
(255) na base decimal.
É preciso notar que apesar dos restos serem 15 e 15 devem
escrever-se na forma hexadecimal F e F. e pensar que eles deram
15 nas contas porque estas são efectuadas na base 10.

5.3 - Conversão Hexadecimal - Binário

Existem duas formas de fazer esta conversão: a primeira consiste em converter o


número em base hexadecimal para base decimal e depois converter o resultado
em base decimal para base binária. Chama-se a este processo o método das
bases intermédias. Neste caso, converter da base hexadecimal para decimal já foi
visto e da base decimal para a base binária também, pelo que não me vou referir a
esses assuntos outra vez.
O outro processo é mais fácil, mas exige um total conhecimento da tabela dos
primeiros 16 números nas bases 2, 8, 16, mostrada no início deste módulo.
Sendo assim se quisermos escrever o número (50) 16 na base decimal, temos que
escrever os seus algarismos um a um em binário a quatro bits. Assim temos 5 na
base binária é 0101 e 0 na base binária é 0000, e portanto o número (50) 8 é
(01010000)2 onde os primeiros 4 bits representam o 5 e os últimos 4 bits
representam o 0 do número (50)16.

12
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

5.4 - Conversão binário - hexadecimal

Nesta situação, também existem duas formas de fazer esta conversão: uma visa o
uso de bases intermédias, ou seja, converter o número em base binária para base
decimal e depois converter esse resultado da base decimal para base
hexadecimal, estando estas conversões analisadas anteriormente pelo que, não
me vou referir a elas.
O outro processo será eficaz se conhecer a tabela dos 16 primeiros números
apresentada no início deste módulo. Como tal, basta partir o número binário em
partes de quatro bits da direita para a esquerda e ver quanto vale cada parte em
hexadecimal.
Por exemplo, o número (11111)2 partido em partes de 4 bits da direita para a
esquerda fica 1|1111. ficando em hexadecimal o número (1F)16, pois (1111)2 =
(F)16 e (1)2 = (1)16. Não se assuste com. o facto de ficar com uma parte só com um
bit, pois ela facilmente se transforma em 4 bits (0001).

4.5 - Conversão Octal - Hexadecimal e Hexadecimal - Octal

Estes tipos de conversões fazem-se normalmente usando o método das bases


intermédias. No caso da conversão octal - hexadecimal converte-se da base octal
para a base binária e depois converte-se da base binária para a base
hexadecimal.
No caso da conversão hexadecimal - octal, converte-se da base hexadecimal para
a base binária e depois converte-se da base binária para a base octal.
Note que a base intermédia neste caso será a base binária, mas pode-se usar
como base intermédia a base decimal, no entanto, a base decimal como
intermédia envolve a realização de cálculos auxiliares, pelo que, a base binária
como intermédia é a opção mais fácil e menos morosa.

13
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

6. - CÓDIGO BCD

Este código, como verá mais à frente, é um código que corresponde à


representação em binário a 4 bits de cada algarismo que compõem um número
em decimal.
Como exemplo, o número (1996)10 tem como correspondente BCD o código:
(0001 1001 1001 0110)BCD. Este código tem aplicações na área da electrónica
digital em representação de quantidades em displays de segmentos ou em
qualquer terminal de saída de informação.

6.1 - Conversão Decimal – BCD

Esta conversão é feita escrevendo cada algarismo decimal de um número no seu


equivalente binário a quatro bits. Por exemplo o número 2001 em decimal tem o
seu equivalente BCD 0010 0000 0000 0001.

6.2 - Conversão BCD - Decimal

Esta conversão é feita de forma inversa à anterior. Dividimos o número em BCD


em partes de quatro bits da direita para a esquerda e escrevemos em decimal o
algarismo correspondente a cada parte de quatro bits. Se uma das partes de
quatro bits for maior que 9 em decimal, o número está mal representado em BCD.

6.3 - Conversão Binário - BCD

Esta conversão usa como base intermédia a base decimal. Converto o valor de
binário para decimal e depois converto o valor de decimal para binário.

6.4 - Conversão BCD - Binário

Esta conversão usa também a base decimal como intermédia. Converto para
decimal o número em BCD e depois converto de decimal para binário o valor em
causa.

14
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

7. - EXERCÍCIOS RESOLVIDOS

1. Efectue as seguintes conversões entre bases numéricas:

a) (2048)10  (?????)2

Como se pode verificar trata-se de uma conversão da base decimal para


a base binária.
Vamos então fazer como é regra, divisões sucessivas do valor por dois
para acharmos os bits do número em base binária.

2048 2
00 1024 2
04 02 512 2
08 04 11 256 2
0 0 12 05 128 2
0 16 08 64 2
0 0 04 32 2
0 12 16 2
0 0 8 2
0 4 2
0 2 2
0 1 2
1 0

Aproveitando os restos da direita para a esquerda, temos que 2048 na


base decimal equivale (100000000000) na base binária.

b) (512)10  (?)16

Ora, temos aqui uma conversão da base decimal para a base


hexadecimal. Temos de dividir o valor sucessivamente por 16 para achar
os algarismos hexadecimais do número.

512 16
032 32 16
0 0 2 16
2 0

Aproveitando os restos da direita para a esquerda, temos que (512) 10 é


igual a (200)16.

15
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

c) (250)10 =(????)16

Trata-se de uma conversão de base decimal para base hexadecimal.


Vamos dividir sucessivamente por 16.

250 16
090 15 16
10 15 0

Vamos então escrever os restos da direita para a esquerda e ficamos


com 15 10. Temos é claro que usar os caracteres hexadecimais
correspondentes a estes restos. Ficamos com FA, ou seja 250 na base
decimal equivale o número FA em hexadecimal.

d) (492)10  (?)8

Bem, temos uma conversão da base decimal para a base octal. Vamos
dividir sucessivamente por 8 para obtermos o número em octal.

492 8
12 61 8
4 5 7 8
7 0

Aproveitando agora os restos da direita para a esquerda, temos que a


492 na base decimal equivale 754 na base octal.

e) (111011)2  (?)10

Temos de efectuar a fórmula:

N = A0 * B0 + A1 * B1 + ... + An * Bn

N = 1 * 20 + 1 * 21 + 0 * 22 + 1 * 23 + 1 * 24 + 1 * 25

N = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 + 1 * 16 + 1 * 32

N = 1 + 2 + 0 + 8 + 16 + 32

N = 59

Portanto, (111011)2 é igual a 59 em decimal

16
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

f) (1110011101)2  (????)8

Trata-se de uma conversão entre base binária para a base octal.


Podemos utilizar a base decimal como intermédia, mas não é
necessário. Vamos dividir da direita para a esquerda o número em
binário em partes de três bits cada.

Vamos agora escrever o correspondente em octal de cada parte.

101  5 011  3 110  6 1  1

O número binário 1110011101 é igual a 1635 em octal.

g) (111001111110101)2  (?)16

Temos aqui uma conversão da base binária para a base hexadecimal. O


melhor método a utilizar é o de dividirmos o número em binário em
partes de quatro bits da direita para a esquerda.

Escrevemos agora em hexadecimal o correspondente a cada parte.

0101  5 1111  F 0011  3 111  7

O número convertido para hexadecimal é 73F5

h) (7344) 8  (?)10

Neste caso temos de aplicar a fórmula:

N = A0 * B0 + A1 * B1 + ... + An * Bn

para calcular o equivalente decimal do número em questão.

N = 4 * 80 + 4 * 81 + 3 * 82 + 7 * 83

N = 4 * 1 + 4 * 8 + 3 * 64 + 7 * 512

N = 1 + 32 + 192 + 3584

N = 3812

O equivalente decimal de (7344)8 é (3812)10.

17
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

i) (3765)8  (?)2

Nesta situação usamos o método de escrever cada dígito do número em


octal a três bits em binário. Usamos este método porque se trata de uma
conversão de octal para binário. Escrevemos agora os grupos de três
bits e ficamos com o número 11111110101 em binário.

j) 275)8  (?)16

Nesta situação usamos a base binária como intermédia. Convertendo


(275)8 em binário ficamos com 010111101. Agora pegamos no número
em binário, dividimos em grupos de quatro bits da direita para a
esquerda e ficamos com 0|1011|1101. Escrevendo agora em
hexadecimal cada parte de quatro bits temos (BD)16.

k) (10110011)BCD  (?)10

Vamos dividir o número em partes de quatro bits da direita para a


esquerda. Temos 1001 | 0011. Escrevendo em decimal o equivalente de
cada parte, temos (93)10.

l) (345)10  (?)BCD

Vamos escrever cada dígito decimal no seu equivalente binário a quatro


bits:

3  0011 4  0100 5  0101

Então (345)10 é equivalente a (001101000101)BCD

18
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

m) (111010)2  (?)BCD

Pois é, vamos usar a base decimal como intermédia. Vamos


primeiramente converter (111010)2 para decimal.

Usando a fórmula:

N = A0 * B0 + A1 * B1 + ... + An * Bn

Calculemos o valor em decimal.

N = 0 * 20 + 1 * 21 + 0 * 22 + 1 * 23 + 1 * 24 + 1 * 25

N = 0 * 1 + 1 * 2 + 0 * 4 + 1 * 8 + 1 * 16 + 1 * 32

N = 0 + 2 + 0 + 8 + 16 + 32

N = 58

Vamos agora escrever (58) 10 em BCD.

5  0101 8  1000

Logo (111010)2 é igual a (01011000)BCD

n) (00110111)BCD  (?)2

Vamos usar a base decimal como intermédia. Primeiro convertemos de


BCD para decimal dividindo o número em panes de quatro bits e
escrevendo o conteúdo de cada parte em decimal. O número em decimal
é 37. Vamos agora converter 37 decimal em binário usando para isso o
método das divisões sucessivas.

37 2
17 18 2
1 0 9 2
1 4 2
0 2 2
0 1 2
1 0

Aproveitando os restos da direita para a esquerda ficamos com 100101


em binário.

19
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

o) (FE32)16  (????)8

Neste caso vamos usar a base binária como intermédia. Convertemos o


número de hexadecimal para binário escrevendo a quatro bits cada
dígito hexadecimal do número. Logo FE32 em hexadecimal é 1111 1110
0011 0010 em binário. Agora pegamos no número em binário e partimos
em grupos de três bits da direita para a esquerda. Ficamos com 1 111
111 000 110 010. Escrevemos agora cada grupo de três bits em octal.
Ficamos finalmente com (177062)8.

p) (DBA2)16  (????)10

Nesta situação temos de aplicar a célebre fórmula:

N = A0 * B0 + A1 * B1 + ... + An * Bn

N = 2 * 160 + A * 161 + B * 162 + D * 163


Não se esqueça de trocar os dígitos hexadecimais pelos seus equivalentes decimais

N = 2 * 1 + 10 * 16 + 11 * 256 + 13 * 4096

N = 2 + 160 + 2816 + 53248

N = 56226

q) (DE6) 16  (?)2

Vamos usar o método de escrever cada dígito


hexadecimal em binário a quatro bits.

D  1101 E  1110 6  0110

Logo o número em binário é (110111100110)2

20
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

8. - EXERCÍCIOS PROPOSTOS

1. O número 1999 está escrito em hexadecimal. Reescreva-o:

a) na base decimal.
b) na base binária.
c) na base octal.
d) em código BCD.

2. O número 3276 está escrito em octal. Reescreva-o:

a) em hexadecimal.
b) em binário.
c) em BCD.
d) em decimal.

3. O número F4E2 está escrito em hexadecimal. Reescreva-o:

a) em binário.
b) em decimal.
c) em octal.
d) em BCD.

4. O número 111011101 está escrito em binário. Reescreva-o:

a) em decimal.
b) em octal.
c) em hexadecimal.
d) em BCD.

5. O número 0011000100001000 está escrito em BCD. Reescreva-o:

a) em decimal.
b) em binário.
c) em octal.
d) em hexadecimal.

21
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

9. - ADIÇÃO DE NÚMEROS BINÁRIOS

Quando andámos na escola primária ensinaram-nos a somar e a subtrair, mas


com o passar do tempo apenas ficámos com a técnica mecanizada e deixámos de
ligar ao "porquê da coisa". Assim para podermos somar e subtrair números
binários, temos que relembrar o "porquê da coisa".

Quando fazemos a conta 69 + 72 = 141 como procedemos? Fazemos:

69
+ 72
14 1

Em pensamento dizemos: 9 + 2 = 11, colocamos por baixo um 1 e dizemos "e vai


um", que somamos na parte de peso imediatamente a seguir com o 6 e o 7 já lá
existentes. Seguidamente fazemos 1 + 6 + 7 = 14, colocamos lá um 4 e dizemos
"e vai um" que somamos no peso imediatamente a seguir, 1 + 0 + 0 que fica só 1.
Temos finalmente o resultado total que é 141.
Em binário ou em qualquer base passa-se o mesmo, sempre que não é possível
representar o resultado com a mesma quantidade de algarismos que as parcelas
têm, temos de dizer "e vai um" e somar esse 1 no próximo peso. Tomemos como
exemplo a seguinte conta em binário:

01 1 1
+ 01 1 1
11 1 0

Começando naturalmente pela direita temos:

1 + 1 = 10 e porque não podemos representar 2 em binário só com um bit.


colocamos lá 0 e vai um para o peso seguinte. No peso seguinte temos 1 (de trás)
+ 1 + 1 = 11 (3)10, ou seja é 1 e vai l para o peso seguinte, pois 3 em binário é 11.
No peso seguinte temos 1 (de trás) 1 + 1 + 1 = 11 (3) 10, ou seja é l e vai l para o
peso seguinte. No último peso temos 1 (de trás) 1 + 0 + 0 = 1 e não vai nada.
É assim que se processa para todas as bases.

22
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

10. - SUBTRACÇÃO DE NÚMEROS BINÁRIOS

A subtracção de números binários faz-se da mesma forma que a subtracção de


números na base decimal. Tomemos como exemplo a seguinte conta:

1 0
– 9
0 1

Normalmente fazemos 9 para 10 é um e vai um. pois estamos a fazer a diferença


para um peso superior.
Esse um que vai é somado ao próximo peso e ficamos com 0 + 1 = 1 para l nada.
É assim que se faz também em binário, por exemplo:

11 1 0
– 01 1 1
01 1 1

Comecemos naturalmente pela direita: 1 para 0 é 1 e vai 1. pois fizemos a


diferença para um peso superior. Somamos o l que vai ao 1 que está a seguir em
baixo e ficamos com 1 + 1 = 0 para 1 e vai 1. Esse 1 soma-se ao próximo peso em
baixo e temos 1 + 1 = 0 para 1, 1 e vai um. Este último 1 soma-se ao próximo 0
ficando com 0 + 1 = 1 para 1 nada, acabando assim a subtracção. Coma a ajuda
dos exercícios resolvidos você irá aprender bem estas técnicas.

23
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

11. - ADIÇÃO DE NÚMEROS EM HEXADECIMAL

Nesta base. passa-se a mesma coisa que em binário. Temos de somar peso a
peso e verificar se o valor resultante da soma de cada peso ultrapassa esse peso.
O número de vezes que se ultrapassa o peso tem de ser somado ao peso
seguinte. Esta operação faz-se para todos os pesos para obter o resultado final.

Como exemplo, vamos efectuar a soma:

54 F E
+ 45 6 7
9 A6 5

Começamos por fazer E+7 = 15, ou seja 5 e vai um. Depois somámos l (de trás)
mais F mais 6, o que resulta em 6 e vai um. Depois somámos l (de trás) com 4 e
com 5 e resultou A. Por último somámos 5 com 4 e deu 9. Sempre que passamos
de F para 0. acrescenta-se um o peso seguinte.

12. - SUBTRACÇÃO DE NÚMEROS HEXADECIMAIS

Nesta base. subtraímos como se subtrai em qualquer outra base. Vamos


subtraindo peso a peso, e se passarmos de 0 para F acrescentamos um ao peso
seguinte. Vejamos um exemplo:

55 F8
– 34 0 9
21 E F

Começando pela direita naturalmente: 9 para 8 é F. Como passámos pelo 0.


acrescentamos 1 ao peso seguinte. 0 + 1 para F dá 1 para F que é E. Como não
passámos pelo 0, não vai nada. Depois 4 para 5 é um. Como voltámos a não
passar pelo 0 não vai nada. Por último 3 para 5 dá 2.

24
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

13. - EXERCÍCIOS RESOLVIDOS

1. Resolva as seguintes contas na base binária:

a)

1 1 0 1 1 1 1
1 1 1 1 1 0 0
+ 1 1 0 1 1 0 1
10 1 0 1 1 0 0 0

Começando naturalmente pela direita: 1 + 0 = 1, 1 + 1 = 0 e vai 1. Depois temos


de somar 1 + 1 + 0 + 0 e o resultado é 0 e vai l porque mais uma vez passamos
pelo 0. Depois temos de somar 1 + 1 + 1 + 1 o que dá zero e vão dois uns porque
passámos duas vezes pelo 0. Depois temos de somar 1 + 1 + 1 + 1 + 1, o que dá
1 e vão dois uns porque passámos novamente duas vezes pelo zero. Somamos
agora 1 + 1 + 0 + 1 + 0, o que dá 1 e vai 1. Somamos em seguida 1 + 1 + 1 + 1. o
que dá 0 e vão dois uns. Depois somamos 1 + 1 + 1 + 1 + 1, o que dá l e vão dois
uns porque passamos duas vezes pelo zero. Somamos seguidamente 1 + 1 o que
dá 0 e vai 1. Este último 1 é somado com nada o que dá 1 e não vai nada.

b)

11 1 10 1 01
– 01 1 11 1 11
01 1 1 0 1 10

Começamos pela direita novamente, 1 para 1 dá zero. 1 para 0 dá 1 e vai 1.


Somando o 1 que vai ao próximo peso temos 1 + 1 = 0, 0 para 1 dá 1 e vai 1 pois
passámos pelo 0. Depois fazemos 1 + 1 = 0 e vai 1, e 0 para 0 dá 0. Depois temos
1 + 1 = 0 e vai 1, 0 para 1 dá 1. Depois temos 1 + 1 = 0 e vai 1, 0 para 1 dá 1.
Repetimos a operação para o seguinte, 1 + 1 = 0 e vai 1, e 0 para 1 dá 1. Por
último temos 1 + 0 = 1, para 1 dá 0.

25
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

2. Efectue as seguintes operações em base hexadecimal:

a)

AB C D EF
+ 1 3 4 5 6 7
B F 1 3 5 6

Começando naturalmente pela direita: F + 7 = 6 e vai 1 porque passámos pelo 0.


1 + E + 6 = 5 e vai 1 porque passámos novamente pelo 0. 1 + D + 5 = 3 e vai um
porque passámos pelo 0 novamente. 1 + C + 4 = 1 e vai 1 porque passámos
novamente pelo 0. 1 + B + 3 = F e não vai nada porque não passámos pelo 0.
A + 1 = B.

b)

F3 24
– DF3 4
13 F0

Começando novamente e naturalmente pelo direita: 4 para 4 dá 0 e não vai nada.


3 para 2 dá F, e como passámos pelo 0 vai 1. 1 + F = 0 e vai 1, 0 para 3 dá 3.
1 - D = E para F dá 1.

14. - EXERCÍCIOS PROPOSTOS

1. Efectue as seguintes operações em binário:

a) b)

11 1 01 1 01 10 1 01 0 1
+ 10 1 01 0 10 – 01 0 10 1 0

__ _ __ _ __ __ _ __ _ _

2. Efectue as seguintes operações em hexadecimal:

a) b)

34 5F DF 23 FD C EF
+ 23 F FF 0 – 12 FD E BC

__ _ __ _ _ _ _ _ _ _ _

26
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

15. - DAS PORTAS LÓGICAS ATÉ AO SOMADOR DIGITAL

Como construir um circuito que some dois números de um bit cada ? Será fácil
aplicando os conhecimentos da matéria anterior, ou seja, escolhendo os números
como entradas e fazer os circuitos lógicos da saída da soma e da saída de
transporte. Fazendo A0 e B0 os dois números de um bit cada, R0 o resultado da
soma e Cout o transporte de saída podemos construir uma tabela de verdades e
retirar as expressões de RO e Cout em função de A0 e B0.

Entradas Saídas

A0 B0 R0 Cout

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

 Somando no primeiro caso 0 + 0, dá 0 e vai 0.

 Somando no segundo caso 0 + 1 dá l e vai 0.

 Somando no terceiro caso 1 + 0 dá l e vai 0.

 Somando no quarto caso 1 + 1 dá 0 e vai 1.

27
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

Olhando bem para as saídas podemos ver que a saída R0 é o xor de A0 com B0 e
a saída Cout é o and de A0 com B0. Chegamos assim, a um circuito que efectua a
soma de dois números de um bit cada. Este circuito chama-se por semi - somador
e o seu esquema é apresentado na figura seguinte:
Como realizar somas de números com mais de um bit? Bem , vamos construir um
circuito que some dois números de um bit cada e também com um bit de
transporte chamado Cin. Este circuito designa-se por somador e já permite a sua
concatenação com outros somadores por forma a aumentar o número de bits de
cada número a somar.
Podemos ligar dois semi - somadores para realizar um somador completo como se
mostra na figura seguinte:

28
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

Como se pode verificar na figura, utilizamos os dois semi - somadores para


construir um somador completo. O somador completo permite somar um
transporte de entrada (cujo peso é igual ao dos bits a somar) com dois bits do
mesmo peso. A saída dá o resultado com o mesmo peso dos bits somados e o
transporte (Carry) que tem peso logo imediatamente a seguir. Se formos analisar
como se chegou ao somador completo, basta pensarmos que somar Cin com A0 e
com B0: sendo estes números binários de um bit cada. o resultado dá no máximo
3 ou seja 11 em binário. Somamos An com Bn e obtemos Rn e Cn+1. Depois
somamos Rn com Cin e obtemos Rn e outro Cn+1. Basta depois aproveitar o Rn
final e efectuarmos um "or" dos dois Cn+1 para obtermos o Cout final.
Existe um circuito integrado construído à custa de somadores completos e soma
dois números de quatro bits cada um. Falamos do 7483 que mostramos já na
figura seguinte:

Para o exterior, só estão disponíveis as entradas Cin(0). A0, A1, A2, A3, B0, B1,
S0, S1, S2, S3 e Cout(4).

Este circuito tem um Cin de peso 0 para poder receber carry's (transportes) que
poderão vir de trás e tem um Cout para poder enviar o seu carry (de peso 4) em
possíveis interligações.

29
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

16. - CÓDIGO DE COMPLEMENTOS

A numeração binária, até agora, só podia representar números binários naturais,


ou seja, só números positivos. Como representar então os números positivos em
binário? Torna-se fácil se pensarmos em dividir os códigos binários em positivos,
negativos e o número 0. Assim se a 4 bits. era possível representar números de 0
a 15, agora representam-se os números negativos de -8 a -1, o 0 e os positivos de
1 a 7. Sendo assim em código de complementos, os números com o bit mais à
esquerda a 1 são negativos, e os números cujo bit mais à esquerda é 0 são
positivos.

Veja-se a tabela seguinte que mostra os números a 4 bits em código de


complementos:

Números decimais Números em código de complementos

7 0111

6 0110

5 0101

4 0100

3 0011

2 0010

1 0001

0 0000

-1 1111

-2 1110

-3 1101

-4 1100

-5 1011

-6 1010

-7 1001

-8 1000

Talvez seja de notar, já agora, que os números pares têm o bit mais à direita a 0 e
os ímpares têm o bit mais à direita a 1.

30
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

Como calcular um número negativo decimal em código de complementos e vice-


versa ? É muito fácil. Por exemplo como converter o número -5 para código de
complementos? Pensemos no seu simétrico que é 5. Escrevemos 5 em binário
natural, (101) como o menor número de bits possível (neste caso 3).
Acrescentamos um bit 0 à esquerda (0101). Negamos o resultado bit a bit (1010).

Somamos 1 (1010 + 1 = 1011).


O número -5 decimal é (1011) em código de complementos.

Tendo um número em código de complementos, como o converter decimal ? É


fácil Por exemplo:

(101 1) c.c converte-se para decimal da seguinte forma:

Se for positivo, faz-se a conversão binário - decimal usando a técnica


anteriormente estudada. Se for negativo (é o caso) fazemos da seguinte forma:

Negamos bit a bit o número (0100) e somamos 1 (0100 + 1 = 0101) e vemos que o
resultado é 5 em decimal. Se o resultado é 5, então o número (101 1) c.c é -5 em
decimal.
Podemos daqui tirar uma conclusão importante: para calcular o simétrico de um
número em código de complementos, negamos esse número bit a bit e soma-se 1.

31
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

17. - CÓDIGO DE GRAY

O código de Gray é um código binário em que duas quantidades consecutivas só


diferem de um bit. É um código muito usado em projecto de máquinas assíncronas
(veremos mais à frente), e por isso, terá algum interesse estudá-lo aqui.

A tabela seguinte mostra os 16 primeiros números em Gray:

GRAY Decimal Binário

0000 0 0000

0001 1 0001

0011 1 0010

0010 3 0011

0110 4 0100

0111 5 0101

0101 6 0110

0100 1 0111

1100 8 1000

1101 y 1001

1111 10 1010

1110 11 1011

1010 12 1100

1011 13 1101

1001 14 1110

1000 15 1111

32
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

A conversão binário - gray é feita usando a seguinte fórmula:

G0 = B0 XOR B1

G1 = B0 XOR B2
G2 = B0 XOR B3

Gk = B0 XOR G(k+1)

Gn = Bn (último bit)

A conversão gray - binário é feita usando a seguinte fórmula :

B0 = G0 XOR G1 XOR ... XOR Gn

B1 = G1 XOR G2 XOR ... XOR Gn

Bk = Gk XOR G(k+1) ... XOR Gn


Bn = Gn (último bit)

Os circuitos lógicos que permitem esta conversão estão apresentados em


seguida:

BINÁRIO - GRAY GRAY - BINÁRIO

33
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

18. - DETECTORES DE ERROS SIMPLES

Para preservar a ausência de erros em comunicação interessa sempre tentar


descobrir esses erros, para os poder eliminar. Os erros em comunicação
acontecem devido às condições de transmissão e recepção não serem ideais.
Existem perdas nas linhas, ruídos nas linhas, no ar, em qualquer meio existem
sempre contras a uma boa comunicação. Em electrónica digital é possível detectar
e corrigir esses erros. Assim se estabelecermos uma comunicação digital a n bits,
acrescentamos um bit que é o XOR de todos os outros e enviamo-lo também. Na
recepção recebemos os n bits e também o bit n + 1 que é o XOR dos outros todos
e efectuamos agora um XOR dos n bits que recebemos com o bit n + 1, ficando na
saída desse último XOR a informação da existência de erro ou não. A este bit que
se acrescenta chama-se bit de paridade. Se neste caso o resultado do XOR da
recepção for 0, então o código que chegou está correcto, se o XOR da recepção
for 1 o código não é aceite. Este circuito chama-se detector de erros simples, e
como simples que é, tem as suas falhas, mas já consegue filtrar muitos erros em
comunicação.

Analise o seguinte esquema:

Se enviar o valor (1111)2, o resultado do XOR de todos os bits é 0. Enviamos


então (1111)2 e o 0 do XOR noutro bit.
Se por acaso recebermos (1110)2, o XOR de (1110)2 com 0 do XOR recebido é 1,
tendo portanto assim a certeza de que houve um bit que se perdeu na linha.
Se existirem dois bits eirados, o detector confunde-se e indica a inexistência de
erros. Este detector é assim pouco fiável.

Detector de erros simples

Dados enviados Dados recebidos

Bit de paridade
Emissor Receptor

34
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

19. - EXERCÍCIOS RESOLVIDOS

1. Usando somadores 7483 realize um somador de dois números de 8 bits


cada.

Trata-se de uma concatenação simples usando o Cout do primeiro somador ligado


ao Cin do segundo somador por forma efectuar o somador de dois números de
oito bits cada.

35
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

2. Utilizando somadores 7483 implemente um somador de três números de


quatro bits cada.

Primeiro somamos A com B. Desse resultado sai uma soma S0..3 e o C4.
Somamos S0..3 com C0..3 obtendo a soma final S0..3 e outro C4. Depois usamos
outro somador para somar os bits de peso 4. Essa soma gera o bit final de peso 4
e um bit fina! de peso 5.

36
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

3. Efectue um conversor de binário para código de Gray para números a oito


bits.

4. Efectue as seguintes conversões:

a) (-8) 10  (?)cc

Em primeiro lugar vamos escrever 8 em binário natural.

(8)10 = (1000)2

Agora bastar negar bit a bit e somar 1

0111 + 1 = 1000

37
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

b) (11101)cc = (?)2

Este número está em código de complementos e é negativo, pois o seu bit


mais à esquerda é 1. Vamos negar bit a bit e somar 1 para achar o seu
simétrico.

00010 + 1 = 00011

O resultado dá 3 em decimal, o que significa que (11101) cc = (-3)10

c) (11101)2 = (?)gray

A conversão de binário para Gray faz-se aplicando a fórmula:

G0 = B0 XOR B1
G1 = B0 XOR B2

Gk = Bk XOR B(k+1)

Gn = Bn (último bit).

G0 = B0 XOR B1 = 1 XOR 0 = 1

G1 = B1 XOR B2 = 0 XOR 1 = 1

G2 = B2 XOR B3 = 1 XOR 1 = 0
G3 = B3 XOR B4 = 1 XOR 1 = 0

G4 = B4 = 1

O número (11101 )2 = (10011)Gray

d) (11101)gray = (?)2

Esta conversão faz-se da seguinte forma:

B0 = G0 XOR G1 XOR G2 XOR G3 XOR G4 = 0


B1 = G1 XOR G2 XOR G3 XOR G4 = 1

B2 = G2 XOR G3 XOR G4 = 1

B3 = G3 XOR G4 = 0
B4 = G4 = 1

O número (11101)Gray é (10110)2

38
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

20. - EXERCÍCIOS PROPOSTOS

1. Converta para decimal os seguintes números em código de complementos:

a) (1110111)

b) (0111011)

2. Realize um circuito utilizando somadores 7483 que efectue somas de dois


números de dezasseis bits cada.

3. Realize um detector de error simples para números de 8 bits. Explique o seu


funcionamento.

4. Realize um circuito conversor de código Gray para binário natural.

39
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

40
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

Bibliografia:

SEIA, Mário Araújo; RODRIGUES, Victor Pimenta, “123 Projecto de Sistemas Digitais”, Editora
Presença.

41

Você também pode gostar