Você está na página 1de 43

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.

Página 2 de 43
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
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

19. - EXERCÍCIOS RESOLVIDOS 35


20. - EXERCÍCIOS PROPOSTOS 39

Página 4 de 43
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.

Página 2 de 43
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.
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

Página 4 de 43
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.
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

Página 6 de 43
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.
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).

Página 8 de 43
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.
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.

Página 10 de 43
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.
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

Página 12 de 43
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária
Aproveitando os restos da direita para a esquerda, temos que (512) 10 é igual a
(200)16.

b) (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.

c) (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.

d) (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
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

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

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

e) (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.

01 11
101  5  3  6 1  1
1 0

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

f) (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.

001
0101  5 1111  F  3 111  7
1

O número convertido para hexadecimal é 73F5

g) (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.


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

h) (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.

i) 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.

j) (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.

k) (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

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

l) (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

m) (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.
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

n) (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.

o) (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

p) (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

Página 18 de 43
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.
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:

6 9
+ 7 2
1 41

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:

0111
+ 0111
111 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.

Página 20 de 43
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:

111 0
– 0111
0111

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.
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 FE
+ 4 56 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:

5 5 F8
– 34 09
2 1E 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.

Página 22 de 43
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)

11 0 111 1
11111 0 0
+ 11 0 110 1
1 01 0 11 00 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)

11110 1 01
– 0 1111111
0 111 0 110

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.
ELECTRÓNICA DIGITAL
Sistemas de Numeração e Aritmética Binária

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

a)

ABCDE F
+ 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
– DF34
1 3 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)

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

_ __ __ __ _ _ __ __ __

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

a) b)

34 5 FDF 2 3 FDCE F
+ 23 FFF0 – 1 2 FDE BC

__ __ __ _ _ _ _ _ _ _

Página 24 de 43
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.


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:

Página 26 de 43
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.
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.

Página 28 de 43
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.
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

Página 30 de 43
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


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

Página 32 de 43
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.
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.

Página 34 de 43
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
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

Página 36 de 43
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.


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

Página 38 de 43
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.

Você também pode gostar