4. 4
DAS/CTC/UFSC
Introdução
1. Introdução
A palavra digital vem do grego “digitus” que significa “número”:
⇒ Um sistema digital é portanto um sistema no qual a informação está
codificada e circula sob a forma de números (ou valores discretos)
– Ex. computadores, televisores digitais, relógios digitais, transmissão
digital.
⇒ Em contraposição, os sistemas analógicos a informação varia de
modo contínuo (função do tempo)
– Ex. Transmissão analógica, TV tradicional,
Vantagens do uso das técnicas digitais
Os sistemas digitais são mais fáceis de projetar
O armazenamento da informação é fácil
Precisão e exatidão são maiores
Os sinais digitais podem ser processados (operações pode ser
programadas)
Circuitos digitais são menos afetados por ruídos
Os circuitos digitais são mais adequados a integração
5. 5
DAS/CTC/UFSC
Introdução
Limitação para uso de sistemas digitais
⇒ O mundo real é predominantemente analógico: grandezas variam de
forma contínua em relação ao tempo.
Para se tirar proveito das técnicas digitais → lidamos com entradas e
saídas analógicas, três etapas devem ser executadas:
Converter o “mundo real” das entradas analógicas para a forma digital
Processar ( ou operar ) a informação digital
Converter as saídas digitais de volta para o mundo real, em sua forma
analógica
7. 7
DAS/CTC/UFSC
Introdução
Um sistema digital é chamado binário → só dois valores possíveis na
codificação da informações tratadas ou armazenadas.
Podemos considerar representações assumindo valores entre
ligado/desligado, verdadeiro/falso, etc.
Vantagem da representação binária é a facilidade de implementação de
circuitos eletrônicos:
produção em larga escala de unidades que efetuam operações
padronizadas
Circuitos cada vez mais velozes → obtidas implementações operando
em velocidades que ultrapassam MHz ou GHz
8. 8
DAS/CTC/UFSC
Histórico
2. Histórico:
A evolução dos sistemas digitais teve seu início no século 16, entretanto,
estes somente mostraram-se úteis no século passado, e sua vulgarização se
deu graças à evolução na microeletrônica.
Concluíndo então:
Este curso visa apresentar as bases necessárias à compreensão, análise e
projeto de circuitos envolvendo sinais digitais e deve servir como base para um
curso posterior sobre microprocessadores e microcontroladores
Período Acont eciment o
século 16: Pascal e Leibniz introduzem calculadoras baseadas em
engrenagens.
século 19: Charles Babbage constrói máquina mecânica programável.
década de 30: computadores baseados em relés para cálculos de balística.
1943: construído o Eniac, com 18.000 válvulas.
1948: invenção do transistor.
1951: primeiro computador comercial, o Univac I.
anos 60: apogeu dos computadores transistorizados.
anos 70: circuitos integrados, invenção do microprocessador.
anos 80: integração em larga escala (VLSI).
anos 90: mais de 10 milhões transistores em um chip.
ano 2000: Pentiun 4: 42 milhões de transistores
ano 2003: Itanium 2: 410 milhões de transistores
futuro: circuitos biológicos; circuitos usando luz; ?.
10. 10
DAS/CTC/UFSC
Sistemas Digitais
Plano : Sistemas Numéricos
1. Sistema Decimal
2. Sistema Binário
3. Sistemas Octal e Hexadecimal
4. Conversão entre Bases
5. Conversão de Números Fracionários
6. Representação de Números com Sinal
7. Complemento 2
8. Complemento 1
11. 11
DAS/CTC/UFSC
Sistemas Numéricos
1. SISTEMAS DE NUMERAÇÃO
1.1 Sistema decimal
. O sistema decimal, também chamado sistema de base 10, é nosso
sistema de numeração usual.
Operações e representações envolvem combinações com dez
possíveis dígitos (0,1,2,3,4,5,6,7,8 e 9).
O incremento de uma unidade a um dígito decimal faz avançar ao
dígito na sequencia da representação decimal:
Se o incremento do digito a direita leva ao digito inicial da seqüência, então o
primeiro digito a esquerda é também incrementado
100199
50149
48147
1019
918
=+
=+
=+
=+
=+
12. 12
DAS/CTC/UFSC
Sistemas Numéricos
A posição de cada dígito em um número está associada a um peso que pode
ser expresso na forma de uma potencia da base:
Desta forma podemos decompor um número em potencias da base 10:
Da mesma forma um número fracionário:
Dos exemplos acima podemos deduzir uma regra genérica para a
decomposição de números em potências da base 10:
0123
1041031051022534 xxxx +++=
21012
10410310510210134,125 −−
++++= xxxxx
..1010101010....,... 2
2
1
1
0
0
1
1
2
221012 ++++++= −
−
−
−−− xdxdxdxdxdddddd
13. 13
DAS/CTC/UFSC
Sistemas Numéricos
1.2 Sistema binário
O sistema binário ou sistema na base 2 tem uma estrutura análoga a do
sistema decimal com a ressalva de operar com somente dois dígitos: 0 e 1.
O incremento funciona da mesma forma:
100111
11110
10101
01100
=+
=+
=+
=+
14. 14
DAS/CTC/UFSC
Sistemas Numéricos
Podemos decompor um número binário da mesma forma que fizemos
para um numero decimal, mas como soma de potencias da base 2:
A notação usada indica o número com a base (base 2) em
representação decimal. Podemos fazer em representação binária:
• operações algébricas acima devem ser efetuadas na base 2
• a decomposição de números binários também vale quando os
números são fracionários
012345
2 202121202021100110 xxxxxx +++++=
0
2
1
2
2
2
3
2
4
2
5
22 100101101100100101100110 xxxxxx +++++=
15. 15
DAS/CTC/UFSC
Sistemas Numéricos
Sistemas Binário e Decimal
O sistema binário é o mais importante em sistemas digitais, mas sistema
decimal é o mais usado na representação de quantidades externas.
tabela de equivalência entre números decimais e binarios :
Em computadores números binários possuem uma nomenclatura
própria:
Um dígito binário é chamado bit
grupo de 8 bits (ou seja um numero binário de 8 dígitos) é
chamado byte
Em número binário o bit mais significativo (o que tem maior
peso) é chamado de MSB (Most Signicant Bit)
o bit menos significativo e chamado LSB (Least Signicant Bit)
Base 10 0 1 2 3 4 5 6 7 8 9
Base 2 0 1 10 11 100 101 110 111 1000 1001
16. 16
DAS/CTC/UFSC
Sistemas Numéricos
1.3 Os sistemas Octal e Hexadecimal
o sistema octal usa a base 8 e emprega os dígitos 0,1,2,3,4,5,6 e 7 para a construção e
operações de números.
A decomposição de números em potencias da base 8 funciona da mesma forma que nos
casos anteriores
Conversão binário/octal: como 8 = 23 a conversão entre números binários e octais é
facilitada→ basta agrupar os dígitos binários em grupos de 3.
Considere o número 10110011001112
Dando o número em octal: 131478
1 011 001 100 111
1 3 1 4 7
São necessários só três bits binários
para representar os dígitos octais
17. 17
DAS/CTC/UFSC
Sistemas Numéricos
O sistema hexadecimal usa a base 16 para seus números e seus dígitos
são 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E e F.
Conversão binário/hexadecimal: como 16 =24 pode ser obtida agrupando
os dígitos binários em grupos de 4:
Considere o numero binário 11110011001112:
Seu equivalente hexa é portanto: 1E6716
Representações octal e hexadecimal de números binários são bastante
usadas em sistemas digitais
⇒ números mais compactos (menos dígitos) e mais fáceis de visualizar.
1 1110 0110 0111
1 E 6 7
18. 18
DAS/CTC/UFSC
Sistemas Numéricos
Tabela de correspondência
Base 10 Base 2 Base 8 Base 16
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 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
16 10000 20 10
...... ...... ...... ......
19. 19
DAS/CTC/UFSC
Sistemas Numéricos
1.4 Conversão entre bases
É natural efetuar operações na base 10
Frequentemente é mais simples converter operandos para essa base
efetuar operações e reconverter os mesmos para a base de origem.
Questão de visualização
Conversão entre base decimal para outras, de números inteiros e
fracionários:
Conversão de um número inteiro na base 10 (n10) para uma base b (nb),
n10→nb:
dividir n10 e os quocientes de divisões sucessivas por essa base b, usando
operações de divisão inteira na base 10.
os restos r das divisões inteiras (sucessivas) tomados de trás para frente
fornecem os dígitos do numero nb
20. 20
DAS/CTC/UFSC
Sistemas Numéricos
Exemplo: a conversão do numero 8710 para a base 2 (q : quociente da
divisao de n por b)
O número correspondente na conversão é então: 10101112
Passo 1 2 3 4 5 6 7 8
n 87 43 21 10 5 2 1 0
q 43 21 10 5 2 1 0 -
r 1 1 1 0 1 0 1 -
21. 21
DAS/CTC/UFSC
Sistemas Numéricos
Conversão de número inteiro de base b qualquer para a base 10 (nb→n10)
toma por base a decomposição do número em potencias da base
Exemplo: converter o número 10101112 para a base 10.
Conversão de um numero nb de uma base qualquer b para base 10:
Basta expressar nb como uma soma de potencias da base b
Depois expressar a base b em seu equivalente na base 10
E em seguida efetuar as operações indicadas na base 10
A maneira mais simples de efetuar a conversão de uma base a
qualquer para outra base b qualquer (na → nb) é usar a base 10 como
passo intermediário: na → n10→ nb
0
2
1
2
2
2
3
2
4
2
5
2
6
22 1011011011001011001011010111 xxxxxxx ++++++= 0123456
2 212121202120211010111 xxxxxxx ++++++= 12401606410101112 ++++++= 102 871010111 →
22. 22
DAS/CTC/UFSC
Sistemas Numéricos
1.5 Conversão de Números Fracionários
Em mudança de base separação entre as partes inteira e fracionária:
Mudança de base de suas partes inteira e fracionaria separadamente
Já vimos a mudança de inteiros resta então a mudança da parte
fracionaria
Dado um numero fracionário nb expresso sob a forma ib ,fb onde ib e fb
são respectivamente as partes inteira e fracionaria de nb
A parte fb pode ser expressa na forma:
...4
4
3
3
2
2
1
1 ++++= −
−
−
−
−
−
−
− bxdbxdbxdxbdfb
23. 23
DAS/CTC/UFSC
Sistemas Numéricos
A conversão de numero fracionário de base b qualquer para a base 10
segue o mesmo procedimento da conversão de números inteiros.
Exemplo: conversão do numero 1101.0011012 para a base 10
654321
0123
2
212021212020
21202121001101.1101
−−−−−−
++++++
++++=
xxxxxx
xxxx 643023
2 2022002022001101.1101 −−−
+++++++++=
64
1
0
16
1
8
1
001048001101.1101 2 +++++++++= 203125,13001101.1101 2 =
24. 24
DAS/CTC/UFSC
Sistemas Numéricos
Conversão de número fracionário da base 10 para outra base b qualquer:
Aparte inteira → método apresentado anteriormente de divisão inteira
Parte fracionaria usando o método apresentado a seguir
Método:
Representação da parte fracionária fb de número em uma base b por:
Para a conversão na base b temos de encontrar os valores d-i na base
b
Multiplicando fb pela base b obtemos:
Então d-1 pode ser retirado como parte inteira de b x f
Aplicando sucessivamente essa multiplicação sobre a parte fracionaria
restante obteremos os demais dígitos de fb
....... 4
4
3
3
2
2
1
1 ++++= −
−
−
−
−
−
−
− bdbdbdbdfb
........ 3
4
2
3
1
2
0
1 ++++= −
−
−
−
−
−− bdbdbdbdfb b ...).....(. 4
4
3
3
2
2
1
1 ++++= −
−
−
−
−
−
−
− bdbdbdbdbfb b
25. 25
DAS/CTC/UFSC
Sistemas Numéricos
Exemplo: vamos converter o valor decimal 4,40710 para a base 2:
Parte inteira: 410 →1002
Parte fracionária f10 = 0,407
Sistemas Digitais - 2009
⇒ f10 → 0,40710 = 0.0110100000110..2 e com a parte
inteira considerada, teremos: 4,40710 =
100.0110100000110..2 Observe que um número com uma quantidade finita de dígitos em
uma base pode tornar-se uma dízima periódica em outra base.
I teração i fi b x fi d-i
1 0,407 0,814 0
2 0,814 1,628 1
3 0,628 1,256 1
4 0,256 0,512 0
5 0,512 1,024 1
6 0,024 0,048 0
7 0,048 0,096 0
8 0,096 0,192 0
9 0,192 0,384 0
10 0,384 0,768 0
11 0,768 1,536 1
12 0,536 1,072 1
13 0,072 0,144 0
14 ...... ...... ......
26. 26
DAS/CTC/UFSC
Sistemas Numéricos
1.6 Representação de números com sinal
Com d bits (dígitos binários) podemos representar ate 2 d valores distintos
de números.
Exemplo: Em um registrador de 4 bits podemos ter os valores inteiros
positivos de 0 a 15 (24 →dezesseis valores).
1101
13
1110
14
1111
15
0000
0
0001
1
0010
2 0011
3
4 0100
5
0101
6
01107
0111
8
1000
9
1001
10
1010
11
1011
1100 12
E a representação de números negativos ???
27. 27
DAS/CTC/UFSC
Sistemas Numéricos
Sinal e Magnitude
Podemos empregar o bit mais significativo MSB para indicar o sinal :
⇒ 0 → +
1 → -
1101
-5
1110
-6
1111
-7
0000
0
0001
1
0010
2 0011
3
4 0100
5
0101
6
01107
0111
-0
1000
-1
1001
-2
1010
-3
1011
1100 -4
Faixa de valores representados de -7 a +7 (± (2d -1 -1)).
Desvantagem da técnica é a dupla representação do zero
Técnica também é chamada sinal-magnitude.
Valore Negativos
Valores Positivos
28. 28
DAS/CTC/UFSC
Sistemas Numéricos
Representação com números complementares
Os números binários manipulados simultaneamente por um processador tem
um número d constante e finito de dígitos binários (8, 16, 32,..)
As operações aritméticas entre esses números são então efetuadas com
módulo M (M =2 d ) ⇒ aritmética modular ou aritmética de campo fixo.
Ex, Incrementar valores com campo fixo → d = 3 bits (módulo 2 3 ):
000 → 001 → 010 → 011 → 100 → 101 → 110 → 111 → 000 → 001 → ...
As formascomplementares permitem implementar a subtração usando
operações de soma com campo fixo (aritmética modular)
simplifica os circuitos necessários para as operações aritméticas
Existem dois tipos de números complementares:
o complemento 2 (C2) e o complemento 1 (C1)
Palavra: bits manipulados simultaneamente
29. 29
DAS/CTC/UFSC
Sistemas Numéricos
Complemento 2 (representação de números negativos)
Usando um campo de dígitos d (módulo M =2d ), o complemento 2 (C2)
de um número n (indicado por ) é dado por:
Exemplo: um número de 4 bits n = 510 = 01012, nosso módulo M vale 24
e o complemento 2 de n e dado por:
Os complementos dos primeiros números com 4 bits:
( ) MnMn mod2
−=
( ) 222
42
101101011000016mod52 =−=−=n
n10 n2 2 4
-n 2
n
0 0000 10000 0000
1 0001 10000-0001 1111
2 0010 10000-0010 1110
3 0011 10000-0011 1101
4 0100 10000-0100 1100
5 0101 10000-0101 1011
2
n
30. 30
DAS/CTC/UFSC
Sistemas Numéricos
Maneira simples de determinar o complemento 2 de n :
tem o mesmo número de bits (d) que n ;
Percorrer n da direita para a esquerda (LSB → MSB) preservando
todos os bits até o primeiro “1” (inclusive) e complementar os demais.
2
n
d n 2
n
4 1101 0011
4 1000 1000
3 110 010
9 111000110 000111010
1 1 1
6 011111 100001
31. 31
DAS/CTC/UFSC
Sistemas Numéricos
Uso de complemento 2 para representar números negativos
Continuamos a considerar o bit mais significativo (MSB) representando o sinal
Mas usamos o complemento 2 para representar a magnitude do número
negativo
Exemplos:
Queremos representar n = -310 em binário:
Dado n = 10102 → a representação n na base 10 é de número negativo
(n10 < 0 ). Mostre o número negativo correspondente na base 10:
00112 =n
10102 =n 01101010
22
==n
310 −=n
10210 6)0110( −=−=n
2
22
11010011 ==n 211013 →−
32. 32
DAS/CTC/UFSC
Sistemas Numéricos
Método de representação de números negativos com d = 4 e representações
complemento 2:
1101
-3
1110
-2
1111
-1
0000
0
0001
1
0010
2 0011
3
4 0100
5
0101
6
01107
0111
-8
1000
-7
1001
-6
1010
-5
1011
1100 -4
Formas Complementares
Formas
Verdadeiras
[-(2(d-1)); +(2(d-1)
-1)]
33. 33
DAS/CTC/UFSC
Sistemas Numéricos
Representação por Complemento 1
O Complemento 1 de um número binário n com d bits é indicado e definido
por:
Exemplos de representação complemento 1:
Regra prática no cálculo do C1
⇒ basta complementar todos os bits do
número n
O complemento 2 de um número n pode ser obtido a partir de
sua representação em complemento 1:
( )( ) )2(mod11 d
MondeMnMn =−−=
1
n
d n 1
n 2
n
4 1101 0010 0011
4 1000 0111 1000
3 110 001 010
9 111000110 000111001 000111010
1 1 0 1
6 011111 100000 100001
112
+= nn
36. 36
DAS/CTC/UFSC
Sistemas Numéricos
Operações aritméticas
As operações aritméticas básicas com números binários seguem os
mesmos princípios de operações em base decimal.
Aritmética binária com campo fixo
Operação de soma entre os números binários (110110102 e 101100012):
O resultado de uma operação é mantido dentro de um número de bits
(módulo); bits mais significativos em excesso são descartados.
Se a soma acima é para 8 bits o resultado a ser considerado é:
11011010
+10110001
110001011
10001011
transporte
37. 37
DAS/CTC/UFSC
Sistemas Numéricos
Se estivermos operando com números com sinal (C1, C2, etc) temos que
tomar cuidado com alterações indesejáveis do bit de sinal:
O mesmo para a soma de dois números negativos que pode provocar um
excesso que descartado mantém o resultado em n bits como positivo.
10011010
+10010001
+100101011
01011010
+00110001
10001011
Overflow
Underflow
38. 38
DAS/CTC/UFSC
Transporte (carry) excedendo o módulo da operação não significa overflow
ou underflow:
1110 (-2 em C2)
+1101 (-3 em C2)
11011 (-5 em C2)
Resultado em 4 bits
com transporte
e sem underflow
39. 39
DAS/CTC/UFSC
Sistemas Numéricos
Subtração entre dois números binários pode ser realizada através da
soma do primeiro com o complemento C2 ou C1 do segundo (o subtraendo).
Exemplo com C2 : usando complemento 2 realizar a operação
X = 3710 – 8610 (001001012 - 010101102):
10
2
2
49
)00110001(
11001111
11001111
1010101000100101
0101011000100101
0101011000100101
−=
−=
−=
=
+=
+=
−=
X
X
40. 40
DAS/CTC/UFSC
A subtração entre dois números binários usando C1 é um pouco mais
complicado que C2.
Exemplo com C1 : realizar a operação X = 1310 – 1110
(0011012 - 0010112):
A notação complemento 2 leva vantagem por não necessitar de teste de
transporte (carry).
10
102
1
2
20000101000001
)1000001(110100001101
001011001101
001011001101
=
==+=
⇒+=
+=
−=
X
transportecom
X
41. 41
DAS/CTC/UFSC
Exemplo com C1 : realizar a operação X = – 1310 + 1110
(- 0011012 + 0010112):
Embora bem mais complexas as operações de produto e divisão seguem os
mecanismos conhecidos para a base decimal
10
10
1
2
2)000010(111101
)111101(001011110010
001011001101
001011001101
−=
−=−==
⇒+=
+=
+−=
X
transportesem
X
42. 42
DAS/CTC/UFSC
Sistemas Numéricos
Outros códigos importantes
Em alguns casos específicos é interessante a utilização de outras
codificações binárias devido a certas vantagens oferecidas por estas.
Decimal Codificado em Binário (BCD): Neste código cada dígito de um
número decimal é codificado na forma de um numero binário.
Para representar os dez dígitos decimais (0, ..., 9) são necessários 4 bits.
Considere o número 34710:
Observe que a codificação BCD difere da codificação binária clássica:
34710 = 1010110112
Os números em BCD são mais longos que os binários normais
Um dos principais usos da codificação em BCD é em displays.
0011 0100 0111
3 4 7
43. 43
DAS/CTC/UFSC
Sistemas Numéricos
Código Gray
Também e chamado de código espelhado e caracteriza se pelo fato de
que dois números consecutivos nunca diferem em mais que um bit.
O código Gray é importante em situações onde é necessário minimizar
as transições de bits por questões de velocidade e imunidade a ruídos
Por exemplo
para passar de 7 a 8 no sistema binário clássico são necessárias 4
transições de bits (0111→1000);
no Gray apenas uma transição e necessária (0100 → 1100)
46. 46
DAS/CTC/UFSC
Sistemas Numéricos
Código 7 segmentos
Código esta relacionado com os displays de segmentos usados em
instrumentos para a apresentação de resultados.
Um display é construído usando sete segmentos luminosos (leds) dispostos
de forma a representar os dígitos de “0” a “9” e as letras de “A” a “F”:
a
b
c
d
e
f
g
a
b
c
d
e
f
g
a
b
c
d
e
f
g
a
b
c
d
e
f
g
a
b
c
d
e
f
g
47. 47
DAS/CTC/UFSC
Sistemas Numéricos
Considerando um segmento iluminado como tendo o valor “1”, temos a
seguinte tabela para os dígitos hexadecimais n código de segmentos
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
a
f
e
g
d
b
c
Hexadecimal
(Binário)
7 segment os
a b c d e f g
0 (0000) 1 1 1 1 1 1 0
1 (0001) 0 1 1 0 0 0 0
2 (0010) 1 1 0 1 1 0 1
3 (0011) 1 1 1 1 0 0 1
4 (0100) 0 1 1 0 0 1 1
5 (0101) 1 0 1 1 0 1 1
6 (0110) 1 0 1 1 1 1 1
7 (0111) 1 1 1 0 0 0 0
8 (1000) 1 1 1 1 1 1 1
9 (1001) 1 1 1 0 0 1 1
A (1010) 1 1 1 0 1 1 1
B (1011) 0 0 1 1 1 1 1
C (1100) 1 0 0 1 1 1 0
D (1101) 0 1 1 1 1 0 1
E (1110) 1 0 0 1 1 1 1
F (1111) 1 0 0 0 1 1 1
48. 48
DAS/CTC/UFSC
American Standard Code for Information Exchange
Codificação alfanumérica
7 ou 8 bits por símbolo
Outros Códigos Importantes: Código ASCII
48