Buscar

ELTD01 2

Prévia do material em texto

Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
CAPÍTULO 2 
CÓDIGOS NUMÉRICOS 
Números fazem parte das atividades humanas e sua importância é indiscutível. 
Números estão presentes em toda a história assim como em muitos objetos pré-históricos. 
Apesar de suas formas de representação, estão na forma decimal pelo simples fato de termos 
dez dedos nas mãos. 
Entretanto podem haver outros códigos numéricos, de acordo com a necessidade ou 
conveniência. No caso de circuitos digitais utiliza-se o código binário. 
2.1 REPRESENTAÇÃO NUMÉRICA 
Um número, como 1.327 representa uma quantidade igual um milhar, três centenas, 
duas dezenas e sete unidades, ou seja, 
0123 10.710.210.310.1327.1  (2‐1) 
 
Nessa representação, a posição do número represente o seu peso, e é portanto uma 
representação posicional. O padrão dessa representação é dado por 
n
n
n
n
m
m rarararararaN   11110011 ......   (2‐2) 
 
Ou de forma genérica 



n
m
i
i raN   (2‐3) 
 
onde r é a base, e a é um coeficiente inteiro, positivo e menor que r. 
Observe que essa representação é válida também para números negativos. 
Vale lembrar que no sistema decimal usam-se os símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. 
2.1.1 Sistema Binário 
O princípio anterior, dado pelas expressões (2-2) e (2-3), é válido também para o 
sistema binário. No sistema binário existem somente dois valores, ou símbolos; 0 e 1. O 
dígito binário recebe o nome de bit (da concatenação da palavras em Inglês Binary Digit). 
Como exemplo, tem-se: 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
132.12.02.12.11101 01232    (2‐4) 
 
O mesmo conceito se estende para números fracionários. Como exemplo, considere: 
25,112.12.02.12.12.02.101,1011 2101232     (2‐5) 
 
Observe que para indicar a base binária utiliza-se o índice 2. Se não houver nenhuma 
indicação, será considerado base decimal. 
2.1.2 Sistema Octal 
Outro sistema de numeração é o octal, onde usam-se os símbolos 0, 1, 2, 3, 4, 5, 6 e 
7. Como exemplo, tem-se: 
4618.58.18.7715 0128    (2‐6) 
 
Neste sistema podem-se usar os índices 8 ou o (letra o minúsculo) para indicar base 
octal. O sistema octal apresenta um uso extremamente limitado. 
2.1.3 Sistema Hexadecimal 
O sistema hexadecimal é de uso intenso, e nesse sistema de numeração usam-se os 
símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F. Como exemplos, tem-se 
195716.516.1016.757 012 HA   (2‐7) 
 
Pode ser usados os índices 16 ou H para indicar base hexadecimal. 
2.1.4 Sistemas Básicos 
No sistema decimal, faz-se a contagem 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Nesse momento, 
como todos os símbolos foram usados, a contagem reinicia no símbolo 0, e ao mesmo 
tempo, faz-se um incremento na contagem no dígito imediatamente mais significativo. 
Desta forma, após o 9, a contagem volta ao 0 e o decimal avança para 1. Esse conceito vale 
para as demais posições. Como exemplo, quando se atingir 99, a unidade reinicia em 0 e a 
dezena sofre um incremento, passando de 9 para 0, o que por sua vez avança a centena, e 
assim a contagem passa de 99 para 100. 
Esse mesmo conceito vale para os sistemas octal, hexadecimal e binário. 
A Tabela 2.1 apresenta o sistema decimal juntamente com os sistemas binário, octal 
e hexadecimal. Essa tabela apresenta apenas os 16 primeiros números nos quatro sistemas. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
Tabela 2.1 – Sistemas básicos de numeração. 
Decimal Binário Octal Hexadecimal 
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 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 
2.2 CONVERSÕES DE BASE 
A conversão de qualquer base para a base decimal é feita por meio das expressões 
(2-2) e (2-3), tanto para parte inteira quanto fracionária. 
2.2.1 Conversão de Decimal para outras Bases – Números Inteiros 
A conversão de números inteiros da base 10 para outras bases é feito pelo método da 
divisão sucessiva. Nesse método, o número a ser convertido é dividido sucessivamente pela 
base desejada. O processo continua até que o quociente seja menor que a base desejada. Os 
restos da divisão, na ordem reversa, correspondem ao valor convertido. Considere os 
exemplos da Figura 2.1 para auxiliar no entendimento. Pela Figura 2.1.a tem-se 12 = 11012, 
a Figura 2.1.b ilustra 19 = 100112, na Figura 2.1.b é mostrado que 123 = 2138 e finalmente a 
Figura 2.1.b mostra que 615 = 267H. 
12 2
0 6 2
0 3 2
1 1 2
1 0
19 2
1 9 2
1 4 2
0 2 2
0 1 2
1 0
123 8
3 15 8
1 2 8
2 0
615 16
7 38 16
6 2 16
2 0
(a) (b) (c) (d)
 
Figura 2.1 – Conversões de inteiro na base 10 para (a) binário, (b) binário, (c) octal e (d) hexadecimal. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
2.2.2 Conversão de Decimal para outras Bases – Números Fracionários 
A conversão de números fracionários da base 10 para outras bases é feito pelo 
método da multiplicação sucessiva. Neste método, o valor na base decimal é multiplicado 
pela base desejada. A parte inteira do resultante da multiplicação corresponde ao dígito mais 
significativo. A parte fracionária é novamente multiplicada pela base e assim 
sucessivamente. O processo termina quando a parte fracionária se torna igual a zero, como 
mostrado na Figura 2.2.a, onde 0,125 = 0,0012. O processo também termina quando se 
atinge a precisão desejada, como ilustrado na Figura 2.2.b, para uma precisão de 4 dígitos. 
Assim, 0,32 ≈ 0,01012. 
 
Figura 2.2 – Conversões de fracionário na base 10 para binário (a) sem arredondamento e com arredondamento. 
A Figura 2.3.a mostra como exemplo de conversão de número fracionário decimal 
para hexadecimal, 0,3475 = 0,58H. Observe que o processo finalizou com dois dígitos. A 
Figura 2.3.b mostra como exemplo de conversão de número fracionário decimal para 
hexadecimal, 0,32 = 0,24368. Nesse caso o processo foi paralisado em 4 dígitos. 
 
Figura 2.3 – Conversões de fracionário na base 10 para (a) octal e (b) hexadecinal. 
2.2.3 Conversão de Decimal para outras Bases – Números Mistos 
A conversão de números com partes inteiras e fracionárias é feito de forma separada. 
A parte inteira é convertida pela divisão sucessiva e a parte fracionária é obtida pela 
multiplicação sucessiva. A seguir as partes separadas são unidas. 
Como exemplo 12,125 é divido em 12 + 0,125. A parte inteira vale 11002 (vide 
Figura 2.1.a) e a parte fracionária vale 0,0012 (vide Figura 2.2.a). Portanto, tem-se que 
12,125 = 1100,0012. 
 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
2.2.3 Conversão entre Bases 2n 
As conversões de números binários para as bases hexadecimal e octal são feitas 
diretamente pela Tabela 2.1. Da mesma forma, a conversão de octal e hexadecimal para 
binário também pode ser feita de forma direta, pela Tabela 2.1. Esses procedimentos de 
conversão valem para números inteiros e fracionários. 
Como exemplo, considere: 
201117 H   20111000117 H  
 
28 1117    28 11100117   
 
HD1110100012    82 51101001   
 
Ocasionalmente o número de dígitos se torna incompatível. A parte inteira pode ser 
complementada com zeros à esquerda, se necessário para atingir a quantidade de bits 
necessária. Da mesma forma, a parte fracionária pode receber zeros à direita. Como 
exemplo, considere: 
822 32101101000111010001    H2900101001101001 22   
 
Essa conversão entre binário e octal foi possível pois 81 = 23. Desta forma três 
dígitos binários formam um dígito octal. Da mesma forma a conversão entre binário e octal 
é válido pois 161 = 24. Consequentemente, quatro dígitos binários formam um dígito 
hexadecimal. 
Entretanto não é possível fazer a conversão direta entre octal e hexadecimal pois não 
a relação161 = 8N não pode ser satisfeita para N inteiro. Desta a forma, a conversão entre 
octal e hexa é feita usando binário como intermediário. Neste tipo de conversão devem-se 
agrupar os bits de acordo com a base de destino. Como exemplo, considere: 
822 124711110001000101111010001072 HA    
 
HD270010110101110100101110113722 228     
 
2.3 CODIGO GRAY 
A sequência binária, mostrada na Tabela 2.1, corresponde à sequência natural 
crescente em binário. Nessa sequência, um ou mais bits podem mudar de valor ao mesmo 
tempo. Considere, como exemplo, a mudança de 7 para 8, isto é, de 01112 para 10002, onde 
todos os bits mudam de valor. Mudança de múltiplos bits pode ser um problema! 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
Para facilitar o entendimento das implicações que isso pode ocasionar, observe o 
sistema mecânico da Figura 2.4. Há um disco com áreas pintadas representando o código 
binário, sendo que as áreas pintadas representam 1 e as áreas não pintadas representam 0. 
Desta forma, os sensores A, B e C indicam os valores binários correspondentes de uma faixa 
de ângulos do disco. Obviamente, este sistema apresenta apenas 3 sensores e 
consequentemente o disco apresenta somente 23 = 8 faixas de valores. Quanto mais sensores 
existirem, menor será a faixa de ângulos. 
 
Figura 2.4 – Sistema mecânico usando código binário. 
Este sistema poderia estar acoplado a qualquer dispositivo de posicionamento, como 
por exemplo, um anemoscópio, que indica a direção do vento. 
Considere que o disco gire lentamente no sentido horário. Sendo o valor atual 0002, 
o próximo valor deverá ser 1112. O momento de transição poder ser delicado, pois se os 
sensores não estiverem perfeitamente alinhados, se a pintura do disco não for perfeita e se 
os sensores não forem idênticos (fatos normais), podem aparecer valores intermediários 
indevidos. Assim, a mudança que deveria ser direta de 0002 para 1112 acaba passando por 
valores intermediários indesejados. Dependendo de qual bit mudar primeiro, seis sequências 
diferentes podem aparecer, como mostrado na Tabela 2.2. 
Se a informação sobre a posição do disco estiver sendo armazenada, ao se fazer uma 
análise posterior, pode-se chegar à conclusão equivocada de que o sistema marcou posições 
indevidas do disco, ou que o sistema de aquisição está com falhas. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
Tabela 2.2 – Possíveis sequências entre 000 e 111. 
ABC ABC ABC ABC ABC ABC 
000 000 000 000 000 000 
100 100 010 010 001 001 
110 101 110 011 101 011 
111 111 111 111 111 111 
 
Esse problema pode ser evitado com o uso do código Gray, em que somente um bit 
muda de valor entre duas posições consecutivas. A Figura 2.5 ilustra o disco com o código 
Gray, que poderia ser usado no sistema da Figura 2.4. Com o uso do código Gray, não há 
leituras intermediárias errôneas, ainda que haja desalinhamento dos sensores, pois somente 
um bit muda entre duas posições consecutivas. 
 
Figura 2.5 – Disco de posicionamento usando código Gray. 
2.3.1 Obtenção do Código Gray 
O código Gray pode ser obtido por espelhamentos sucessivos. A Figura 2.6.a mostra 
o código Gray de 2 bits, que obviamente é igual ao código binário. 
Faz-se então o espelhamento dessa sequência, e tem-se então 0 ,1, 1, 0. Um dos 
lados do espelhamento recebe 0 como primeiro bit e o outro lado do espelhamento recebe 1 
como primeiro bit, como mostrado em azul na Figura 2.6.b. Essa sequência obtida é a 
sequência Gray de dois bits. 
Se agora essa sequência for espelhada, e se um dos lados do espelhamento receber 0 
como primeiro bit e o outro lado do espelhamento receber 1 como primeiro bit, como 
mostrado em azul na Figura 2.6.c, obtém-se a sequência Gray de três bits. 
Esse procedimento pode ser repetido até que se atinja o número de bits desejado. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
 
Figura 2.6 – Códigos Gray de (a) um bit, (b) dois bits e (c) três bits. 
2.3.2 Conversão entre código Gray e binário 
A conversão de binário para Gray pode ser feita diretamente sem o uso de tabelas e 
sem a necessidade de se montar o código inteiro a partir de espelhamentos. Afinal, começa a 
ficar inviável fazer espelhamentos para mais de cinco bits. 
A conversão é feita duplicando o primeiro bit e fazendo-se operação Ou-Exclusivo 
entre primeiro e segundo bits da sequência binária para gerar segundo bit Gray. Da mesma 
forma, faz-se operação Ou-Exclusivo entre segundo e terceiro bits da sequência binária para 
gerar terceiro bit Gray, e assim sucessivamente. 
A Figura 2.7 apresenta como exemplo a conversão de 1100112 para Gray. A Tabela 
2.3 apresenta a operação Ou-Exclusivo entre dois valores A e B. Essa operação é 
representada por . 
1
1
1
0
0
1
0
0
1
1
1
0 
Figura 2.7 – Conversão binário-Gray. 
 
Tabela 2.3 – Operação Ou-Exclusivo. 
A B AB 
0 0 0 
0 1 1 
1 0 1 
1 1 0 
 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
A conversão de Gray para binário é feita de forma similar. O primeiro bit é obtido de 
forma idêntica à anterior, isto é, apenas duplicado. O segundo bit binário é obtido fazendo-
se operação Ou-Exclusivo entre o primeiro bit Gray e o segundo bit binário. Mantendo este 
princípio, o terceiro bit binário é obtido fazendo-se operação Ou-Exclusivo entre o segundo 
bit Gray e o terceiro bit binário, como ilustrado pelo exemplo da Figura 2.8, onde se faz a 
conversão de 100111Gray para binário. 
 
Figura 2.8 – Conversão Gray-binário. 
2.4 CÓDIGOS BCD 
Números binários de alguns bits podem ser manuseados com relativa facilidade. 
Entretanto se o número de bits começa a crescer, fica difícil de identificar o valor. Isso 
ocorre porque os seres humanas trabalham no sistema decimal. 
Assim, considerando que os seres humanos trabalham naturalmente na base decimal 
e que seria difícil manusear grandes números no código binário, foram criados os códigos 
decimal codificado em binário – BCD (binary coded decimal). Neste código, cada dígito 
decimal é convertido em quatro bits binários. O contrário também é válido, isto é, cada 
quatro bits representam um número decimal. 
A Tabela 2.4 apresenta alguns códigos BCD, sendo que o BDC8421 e o BDCXS3 são 
os mais importantes. O código BDC8421 corresponde aos dez primeiros valores da sequência 
binária de quatro bits. Esse é um código posicional, isto é, assim como o código binário, a 
posição do bit determina o seu peso. O bit mais significativo tem peso 8, o segundo bit tem 
peso 4, o terceiro bit tem peso 2 e finalmente o bit menos significativo tem peso 1. Esse é de 
fato o motivo de seu nome, BDC8421. Como mostrado na Tabela 2.4, o decimal 5 é formado 
por RSTU = 0101, ou seja, 0.8+1.4+0.2+1.1. 
Como exemplo, considere as conversões a seguir para o código BCD8421, via Tabela 
2.4. Por simplicidade o código BCD8421 é referido apenas por código BCD. 
BCD1001001001000111001137429     
 
2941701110001010010010010 BCD    
 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
Tabela 2.4 – Códigos BCD. 
Decimal BDC8421 BDC6321 BDC2421 BDCXS3 
RSTU XYZW KLMN FGHI 
0 0000 0000 0000 0011 
1 0001 0001 0001 0100 
2 0010 0010 0010 0101 
3 0011 0100 0011 0110 
4 0100 0101 0100 0111 
5 0101 0110 0101 1000 
6 0110 1000 0110 1001 
7 0111 1001 0111 1010 
8 1000 1010 1110 1011 
9 1001 1100 1111 1100 
 
O código BDC6321 também é um código posicional, porém os bits têm pesos 
diferentes do BDC8421. O bit mais significativo tem peso 6, o segundo bit tem peso 3, o 
terceiro bit tem peso 2 e finalmente o bit menos significativo tem peso 1. Como mostrado na 
Tabela 2.4, o decimal 5 é formado por XYZW = 0110, ou seja, 0.6+1.3+1.2+0.1. 
O código BDC2421 também é um código posicional, porém há dois bits com mesmo 
peso. Como exemplo, veja que pela Tabela 2.4, odecimal 2 é formado por KLMN = 1000 
(1.2+0.4+0.2+0.1) ou KLMN = 0010 (0.2+0.4+1.2+0.1). Da mesma forma, o decimal 5 é 
formado por KLMN = 1011 (1.2+0.4+1.2+1.1) ou KLMN = 0101 (0.2+1.4+0.2+1.1). 
Podem ser montados vários tipos de códigos BCD posicionais, bastando apenas que 
se consigam representar todos os números entre 0 e 9. 
Entretanto, em todos os códigos posicionais, o número o é representado por todos os 
bits em 0. Dependendo da situação, isso pode ser inconveniente. Como exemplo, não há 
diferença alguma entre não mandar informação nenhuma ou mandar 0. Para isso foi criado o 
código BDCXS3. 
O código BDCXS3 é formado pela sequência binária com a adição de 3. Assim, o 
decimal 0 em binário é 0000, porém em BDCXS3 é representado por 3, ou seja, 0011. Isso 
vale para todos os decimais no código BDCXS3, conforme pode ser observado na Tabela 2.4. 
O nome XS3 deriva da sonorização, em Inglês, que indica excesso 3 (excess three). 
Como exemplo, considere as conversões a seguir para o código BCDXS3, via Tabela 
2.4. 
0612401110101010010010011 BCD    
 
 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
2.5 CÓDIGOS ALFANUMÉRICOS 
Além dos códigos já apresentados, usado na representação de números, existem 
também os códigos alfanuméricos. Dentre esses, o mais conhecido é o Código Padrão 
Americano para Troca de Informações - ASCII (American Standard for Information 
Interchange) que é composto de 7 bits. A Tabela 2.5 a listagem parcial desse código. 
Tabela 2.5 – Códigos ASCII. 
Caracter ASCII Hexadecimal Caracter ASCII Hexadecimal 
A 100 0001 41 Y 101 1001 59 
B 100 0010 42 Z 100 1010 5A 
C 100 0011 43 0 011 0000 30 
D 100 0100 44 1 011 0001 31 
E 100 0101 45 2 011 0010 32 
F 100 0110 46 3 011 0011 33 
G 100 0111 47 4 011 0100 34 
H 100 1000 48 5 011 0101 35 
I 100 1001 49 6 011 0110 36 
J 100 1010 4ª 7 011 0111 37 
K 100 1011 4B 8 011 1000 38 
L 100 1100 4C 9 011 1001 39 
M 100 1101 4D branco 010 0000 20 
N 100 1110 4E . 010 1110 2E 
O 100 1111 4F ( 010 1000 28 
P 101 0000 50 + 010 1011 2B 
Q 101 0001 51 $ 010 0100 24 
R 101 0010 52 * 010 1010 2A 
S 101 0011 53 ) 010 1001 29 
T 101 0100 54 - 010 1101 2D 
U 101 0101 55 / 010 1111 2F 
V 101 0110 56 , 010 1100 2C 
W 101 0111 57 = 011 1101 3D 
X 101 1000 58 returno 000 1101 0D 
 próx. linha 000 1010 0A 
 
Além desses códigos, existem vários outros, de aplicações específicas. 
 
 
 
 
 
 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
3.4 EXERCÍCIOS 
1. Faça as conversões indicadas: 
a. 101,012  BCD8421 
b. 101,012  base 8 
c. 101,012  base 10 
d. 101,012  base 16 
e. 457,038  base 10 
f. 457,038  base 16 
g. 457,038  BCD8421 
h. 110111011012  Gray 
i. 11011101101Gray  base 2 
j. 11011101101Gray  base 10 
k. 11011101101Gray  base 8 
l. 11011101101Gray  base 16 
m. A5,EF16  base 2 
n. A5,EF16  base 10 
o. A5,EF16  base 8 
p. A5,EF16  BCD8421 
q. 173,0510  base 16 
r. 173,0510  base 8 
s. 173,0510  base 2 
t. 173,0510  Gray 
u. 173,0510  BCD8421 
 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
2. Quantos números existem entre os hexadecimais AF32 e 5FBC? 
3. Quantos números existem entre os binários 111002 e 100112? 
4. Qual o efeito do deslocamento da vírgula, para a direita e para a esquerda, num 
número binário? 
5. Represente os números 123, 12 e 1450 nos códigos binários e BCD. 
6. Desenvolva uma tabela para o código BCD4321 
7. É possível ter um código BCD6411? E um código BCD4211? Por quê? 
8. Em que código 9 + 8 = 11? E 7 + 7 = 16? 
9. É possível converter 487,038  decimal? 
10. Uma mulher diz ter “apenas” 20 anos em hexadecimal. Qual é a idade real?

Continue navegando