Sistemas Digitais

Conversão entre Bases e Códigos

Professor: Gabriel Soares Baptista

Sistemas Numéricos Posicionais

Revisão e Propriedades

  • Em um sistema de base $b$, cada dígito é multiplicado pelo peso da base elevado à sua posição (da direita para a esquerda, subtraindo uma unidade).
  • Capacidade de representação: Com $N$ dígitos, podemos representar $b^N$ valores distintos.
  • Maior valor: O maior número representável é dado por $b^N - 1$.

Exemplo: $789_{16}$ para Decimal

$$\begin{split} 789_{16} &= (7\times 16^{3-1}) + (8\times 16^{2-1}) + (9\times 16^{1-1}) \\ &= (7\times 256) + (8\times 16) + (9\times 1) \\ &= 1792 + 128 + 9 \\ &\boxed{789_{16}=1929_{10}} \end{split}$$

Bases Superiores a 10

  • Quando a base $b > 10$, utilizamos letras para representar dígitos maiores que 9.
  • No sistema Hexadecimal ($b=16$):
  • $A=10, B=11, C=12, D=13, E=14, F=15$.
Exemplo

Em binário ($b=2$) com 4 bits, representamos $2^4 = 16$ números (de 0 a 15).

Conversão: Decimal para Binário

Algoritmo de Divisões Sucessivas

  1. Divida o número $N$ pela base de destino (ex: 2).
  2. Registre o resto.
  3. Repita o processo com o quociente até que ele seja zero.
  4. O resultado é a sequência de restos lida de baixo para cima.

Problema: $453_{10}$ para $b=2$

$$ \begin{split}453 \div 2 &= 226 \text{, resto } 1 \text{ (LSB)}\\226 \div 2 &= 113 \text{, resto } 0 \\113 \div 2 &= 56 \text{, resto } 1 \\56 \div 2 &= 28 \text{, resto } 0 \\28 \div 2 &= 14 \text{, resto } 0 \\14 \div 2 &= 7 \text{, resto } 0 \\7 \div 2 &= 3 \text{, resto } 1 \\3 \div 2 &= 1 \text{, resto } 1 \\1 \div 2 &= 0 \text{, resto } 1 \text{ (MSB)}\end{split}$$

$$\boxed{453_{10} = 111000101_2}$$

Fluxograma de Conversão

ConversaoBinarioinicioINÍCIOdiv2Divida pela Baseinicio->div2guardaGuarde o quociente (Q)e o resto (R)div2->guardadecisaoQ = 0?guarda->decisaodecisao->div2 NÃO resultadoLer R's de baixopara cimadecisao->resultado SIM fimFIMresultado->fim

Conversão: Decimal para Hexa

  • Aplica-se o mesmo algoritmo de divisões, utilizando o divisor 16.
  • Restos $> 9$ devem ser convertidos para letras (A-F).

Problema: Converta $365_{10}$ para $b=16$

$$\begin{split} 365_{10} \div 16 &= 22 \text{, resto } 13 \,(D) \\ 22 \div 16 &= 1 \text{, resto } 6 \\ 1 \div 16 &= 0 \text{, resto } 1 \end{split}$$

$$\boxed{365_{10} = 16D_{16}}$$

Questões de Fixação - 1 / 3

  1. Utilize o método de divisões sucessivas para converter $95_{10}$ para binário, identificando os bits MSB (mais significativo) e LSB (menos significativo).
  2. Calcule a quantidade mínima de bits necessária para representar o número decimal $2000_{10}$.
  3. Converta $438_{10}$ para hexadecimal utilizando divisões sucessivas, atentando para a conversão correta dos restos para letras.

Binário para Decimal: Double-Dabble

O Algoritmo

  1. Identifique o bit 1 mais à esquerda (resultado inicial).
  2. Dobre o valor e some o próximo bit à direita.
  3. Repita o ciclo "dobra e soma" até processar todos os bits.

Problema: $11011_{2}$ para Decimal

$$\begin{array}{l} 1 \times 2 = 2 \to +\,1 = 3 \\ 3 \times 2 = 6 \to +\,0 = 6 \\ 6 \times 2 = 12 \to +\,1 = 13 \\ 13 \times 2 = 26 \to +\,1 = 27 \end{array}$$

$$\boxed{11011_{2} = 27_{10}}$$

Relação Binário $\leftrightarrow$ Hexadecimal

Como $2^4 = 16$, a conversão é feita por agrupamento de 4 bits (nibbles).

Binário $\to$ Hexa

  1. Agrupe bits de 4 em 4 da direita para a esquerda.
  2. Complete com zeros à esquerda se necessário.
  3. Converta cada grupo individualmente.

Hexa $\to$ Binário

  1. Cada dígito hexa expande para seu equivalente de 4 bits.
  2. Método "taquigráfico".

Exemplo: $1110100110_{2} = \underbrace{0011}_{3} \;\; \underbrace{1010}_{A}\;\; \underbrace{0110}_{6} = 3A6_{16}$.

Código BCD (Binary-Coded-Decimal)

  • Conceito: Cada dígito decimal é representado individualmente por 4 bits.
  • Limite: Apenas combinações de $0000_2$ a $1001_2$ (0 a 9) são válidas.
  • Utilidade: Projetar displays numéricos e facilitar interface humana (mundo decimal).

Exemplo de Conversão

$$\begin{array}{ccc l} 8 & 7 & 4 & \text{(decimal)} \\ \downarrow & \downarrow & \downarrow & \\ 1000 & 0111 & 0100 & \text{(BCD)} \end{array}$$

BCD vs. Binário Puro

Binário Puro

  • Obtido do número decimal completo.
  • Mais eficiente em espaço.
  • Ex: $137_{10} = 10001001_2$ (8 bits).

Código BCD

  • Conversão dígito a dígito.
  • Exige mais bits.
  • Ex: $137_{10} = 0001 \ 0011 \ 0111$ (12 bits).
  • Facilita hardware de visualização.

Questões de Fixação - 2 / 3

  1. Realize a conversão de $101101_{2}$ para decimal através do método double-dabble, demonstrando cada passo de multiplicação e soma.
  2. Transforme o binário $1010111100_{2}$ em hexadecimal, lembrando-se de realizar o agrupamento correto da direita para a esquerda.
  3. Converta os seguintes números decimais para o código BCD: (a) 35; (b) 908; (c) 1472.
  4. Identifique quais das seguintes sequências de 4 bits são inválidas no código BCD e explique o motivo: $0101$, $1100$, $1001$, $1011$.

Código Gray

  • Propriedade: Dois valores adjacentes diferem em apenas um bit.
  • Aplicação: Evita erros em sistemas de alta velocidade e sensores de posição (discos ópticos).
Decimal Binário Gray
2 010 011
3 011 010
4 100 110

Note que de 3 para 4 no binário mudam 3 bits; no Gray, apenas 1.

Algoritmo de Conversão Gray

Binário $\to$ Gray

  • O MSB permanece igual.
  • $G_n = B_n \oplus B_{n+1}$.
  • Regra prática: $G = B \oplus (B \gg 1)$.

Problema: $1011_2$ para Gray

$$\begin{array}{r cccc l} & 1 & 0 & 1 & 1 & \text{(B)} \\ \oplus & 0 & 1 & 0 & 1 & \text{(B}\gg\text{1)} \\ \hline & 1 & 1 & 1 & 0 & \text{(Gray)} \end{array}$$

Código ASCII

  • Alfanumérico: Representa letras, números e sinais.
  • Padrão: 7 bits ($2^7 = 128$ representações).
  • Abrange maiúsculas, minúsculas e funções de controle (RETURN, etc.).

Exemplo: "COST = $72." em Hexa

C O S T [espaço] = [espaço] $ 7 2
43 4F 53 54 20 3D 20 24 37 32

Unidades de Informação

  • Byte: Grupo de 8 bits. Unidade fundamental de medida.
  • Nibble: Grupo de 4 bits (metade de um byte).
  • Palavra (Word): Unidade natural de um sistema (8, 16, 32 ou 64 bits).
Exemplo

O número decimal $52931$ em BCD usa 5 dígitos $\times$ 4 bits = 20 bits. Isso equivale a 2,5 bytes ou 5 nibbles.

Questões de Fixação - 3 / 3

  1. Converta o binário puro $1010_2$ para o código Gray utilizando o método da operação XOR.
  2. Explique por que o hexadecimal é considerado uma forma taquigráfica e descreva uma situação prática onde o desenvolvedor se beneficia desse sistema.
  3. Codifique a palavra "Hardware" para o formato ASCII utilizando a representação hexadecimal.
  4. Qual é a característica fundamental do código Gray que o torna ideal para sensores de posição em eixos rotativos?
  5. Diferencie o conceito de Byte, Nibble e Palavra.

Conclusão e Próximos Passos

Resumo

  • Aprendemos algoritmos universais de conversão (divisões e pesos).
  • Exploramos códigos específicos para hardware (BCD, Gray) e texto (ASCII).

Próximo Capítulo

  • Tabela-verdade e Portas Lógicas: Iniciaremos o estudo dos circuitos que processam esses sinais binários.