Em computadores, precisamos converter binário em cinza e cinza em binário. A conversão disso pode ser feita usando duas regras: conversão de binário para cinza e conversão de cinza para binário. Na primeira conversão, o MSB do código cinza é constantemente equivalente ao MSB do código binário. Bits adicionais da saída do código cinza podem ser obtidos usando o conceito de porta lógica EX-OR para os códigos binários nesse índice atual, bem como no índice anterior. Aqui o MSB nada mais é do que a parte mais significativa. Na primeira conversão, o MSB do código binário é constantemente equivalente ao MSB do código binário particular. Bits adicionais da saída do código binário podem ser obtidos usando o EX-OR porta lógica conceito, verificando os códigos cinza no índice atual. Se o bit de código cinza atual for zero, depois disso, copie o código binário anterior e também copie o reverso do bit de código binário anterior. Este artigo discute uma visão geral dos conversores de código que incluem conversor de código binário para cinza, bem como conversor de código cinza para binário.
O que é um código binário?
Em computadores digitais, o código usado com base em um sistema numérico binário é conhecido como código binário. Existem dois estados possíveis, como LIGADO e DESLIGADO, representados por 0 e 1. O sistema digital usa 10 dígitos, onde cada posição de dígito significa a potência de 10. Em um sistema binário, cada posição de um dígito representa uma potência de 2.
Um sinal de código binário inclui uma sequência de pulsos elétricos que significam caracteres, números e operações a serem executadas. Um dispositivo de relógio é usado para transmitir pulsos normais, bem como componentes como transistores, ligue / desligue para fluir, caso contrário bloqueia os sinais. No código binário, cada número decimal varia de 0 a 9 pode ser representado por um conjunto de 4 bits / dígitos binários. As 4 operações aritméticas básicas como adição, subtração, multiplicação e divisão podem ser reduzidas a combinações de funções algébricas booleanas básicas em números binários.
Qual é o Código Gray?
O Código Gray ou RBC (código binário refletido), ou código cíclico, é uma série de sistemas numéricos binários. A principal razão para chamar esse código binário refletido é que os valores N / 2 iniciais estão na ordem inversa em comparação com os últimos valores N / 2. Nesse tipo de código, os dois valores sucessivos são alterados por meio de um único bit de dígitos binários. Esses códigos são usados principalmente na série comum de números binários gerados pelo hardware.
Os números binários podem causar erros uma vez que a transição seja feita de um único número para o consecutivo. Esse tipo de código basicamente resolve esse problema, alterando apenas um bit, uma vez que a mudança entre os números é feita.
Este tipo de código é extremamente leve e não depende do valor do dígito que é declarado em toda a posição. Esse tipo de código também é denominado código de variável cíclica porque a mudança de um único valor para seu valor consecutivo mantém a mudança de apenas um único bit.
Este é o mais popular para os códigos de distância da unidade, entretanto, não é apropriado para funções aritméticas. As aplicações do código cinza incluem conversores analógico para digital e comunicação digital para correção de erros. Em primeiro lugar, o código cinza não é fácil de entender, no entanto, torna-se muito mais fácil de reconhecer.
Conversor de código binário para cinza
O código binário é uma representação muito simples de dados usando dois valores, como 0 e 1, e é usado principalmente no mundo do computador. O código binário pode ser um valor alto (1) ou baixo (0) ou até mesmo uma modificação no valor. O código cinza ou código binário refletido estima a natureza do código binário que é organizado com indicadores liga e desliga, geralmente denotados com uns e zeros. Esses códigos são usados para ver a clareza, bem como a modificação de erros em binários comunicações .
A conversão de binário em código cinza pode ser feita usando um circuito lógico . O código cinza é um código não ponderado porque não há nenhum peso específico atribuído para a posição da broca. Um código de n bits pode ser obtido reproduzindo um código de n-1 bits em um eixo subsequente às linhas de 2n-1, bem como colocar o bit mais significativo de 0 sobre o eixo com o bit mais significativo de 1 abaixo do eixo. A geração do código cinza passo a passo é mostrada abaixo.
Circuito lógico de conversão de código binário para cinza
Este método usa uma porta Ex-OR para executar entre os bits binários. O melhor exemplo a seguir será muito útil para saber a conversão de binário em cinza. Neste método de conversão, anote o bit MSB do número binário atual, pois o bit primário ou bit MSB do número de código cinza é semelhante ao número binário.
Para obter os bits codificados em cinza diretos para gerar o dígito codificado em cinza correspondente para os dígitos binários fornecidos, adicione o dígito primário ou o dígito MSB do número binário em direção ao segundo dígito e anote o produto próximo ao bit principal de código cinza, e adicione o próximo bit binário ao terceiro bit e anote o produto próximo ao 2WLpedaço de código cinza. Da mesma forma, siga este procedimento até o bit binário final, bem como anote os resultados dependendo de Operação lógica EX-OR para gerar o dígito binário codificado em cinza correspondente.
Exemplo de conversor de código binário para cinza
Suponha que os dígitos do código Binário sejam bo, b1, b2, b3, enquanto o Código Gray particular pode ser obtido com base no seguinte conceito.
Exemplo de conversão de código
A partir da operação acima, finalmente podemos obter os valores de cinza como g3 = b3, g2 = b3 XOR b2, g1 = b2 XOR b1, g0 = b1 XOR b0.
Exemplo de conversão
Por exemplo, pegue o valor binário b3, b2, b1, b0 = 1101 e encontre o código cinza g3, g2, g1, g0 com base no conceito acima
g3 = b3 = 1
g2 = b3 XOR b2 = 1 XOR 1 = 0
g1 = b2 XOR b1 = 1 XOR 0 = 1
g0 = b1 XOR b0 = 0 XOR 1 = 1
O código cinza final para o valor do binário 1101 é 1011
Tabela do conversor de código binário para cinza
Número decimal | Código binário | Código Cinza |
0 | 0000 | 0000 |
1 | 0001 | 0001 |
dois | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
onze | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
quinze | 1111 | 1000 |
Código VHDL para conversão de código binário em cinza é fornecido abaixo.
BIBLIOTECA ieee
USE ieee.std_logic_1164.ALL
entidade bin2gray é
porta (bin: em std_logic_vector (3 downto 0) - entrada binária
G: out std_logic_vector (3 downto 0) - saída de código cinza
)
fim bin2gray
nível_de_portão de arquitetura de bin2gray é
começar
–Xor portões.
G (3)<= bin(3)
G (2)<= bin(3) xor bin(2)
G (1)<= bin(2) xor bin(1)
G (0)<= bin(1) xor bin(0)
fim
Vantagens
O vantagens do código binário inclui o seguinte.
- O principal benefício de usar código binário é que ele é simplesmente representado por dispositivos eletrônicos
- Os dados binários também são muito simples de armazenar.
- Muito fácil de significar e controlar eletronicamente e mecanicamente.
- A disparidade entre as representações de símbolos pode ser aumentada de forma que a possibilidade de erro possa ser reduzida.
O desvantagens do código binário inclui o seguinte.
- O número necessário de símbolos pode ser aumentado para significar um determinado número de sistemas de valor de posição geral.
- Os seres humanos não podem lê-los de forma extremamente eficaz por causa de seu comprimento e usando números de base dez por padrão
- Ele usa muitos dígitos para significar qualquer número lógico
Formulários
As aplicações de código binário incluem o seguinte.
- Os códigos binários são usados em telecomunicações e também em computação para diferentes técnicas de codificação de dados, como cadeias de caracteres em cadeias de bits. A largura usada por esses métodos é fixa, caso contrário, strings de largura variável.
- Isso é usado em linguagens de computador e também em programação porque as linguagens de computador dependem principalmente de sistemas numéricos de 2 dígitos.
Conversor de cinza para código binário
Esse método de conversão de cinza em binário também usa o conceito de funcionamento da porta lógica EX-OR entre os bits de cinza e também os binários. O exemplo a seguir com o procedimento passo a passo pode ajudar a conhecer o conceito de conversão de código cinza em código binário.
Para alterar o cinza para o código binário, anote o dígito MSB do número do código cinza, pois o dígito primário ou o MSB do código cinza é semelhante ao dígito binário.
Para obter o próximo bit binário direto, ele usa a operação XOR entre o bit primário ou o bit MSB do binário para o próximo bit do código cinza.
Circuito lógico de conversão de cinza para código binário
Da mesma forma, para obter o terceiro bit binário direto, ele usa a operação XOR entre o segundo bit ou o bit MSB do binário para o terceiro bit MSD do código cinza e assim por diante.
Exemplo de conversor de cinza para código binário
Vamos supor que Código Cinza dígitos g3, g2, g1, g0 enquanto os dígitos do código binário particulares são bo, b1, b2, b3 podem ser obtidos com base no seguinte conceito.
Exemplo de conversão
Da operação acima, finalmente podemos obter os valores binários como b3 = g3, b2 = b3 XOR g2, b1 = b2 XOR g1, b0 = b1 XOR g0.
Exemplo de conversão de código
Por exemplo, pegue o valor cinza g3, g2, g1, g0 = 0011 e encontre o código binário b3, b2, b1, b0 com base no conceito acima
b3 = g3 = 0
b2 = b3 XOR g2 = 0 XOR 0 = 0
b1 = b2 XOR g1 = 0 XOR 1 = 1
b0 = b1 XOR g0 = 1 XOR 1 = 0
O código binário final para o valor de cinza 0011 é 0010
Tabela de conversão de cinza para código binário
Número decimal | Código Cinza | Código binário |
0 | 0000 | 0000 |
1 | 0001 | 0001 |
dois | 0010 | 0010 |
3 | 0011 | 0011 |
4 | 0110 | 0100 |
5 | 0111 | 0101 |
6 | 0101 | 0110 |
7 | 0100 | 0111 |
8 | 1100 | 1000 |
9 | 1101 | 1001 |
10 | 1111 | 1010 |
onze | 1110 | 1011 |
12 | 1010 | 1100 |
13 | 1011 | 1101 |
14 | 1001 | 1110 |
quinze | 1000 | 1111 |
Vantagens
O vantagens do código cinza inclui o seguinte.
- O circuito lógico pode ser reduzido
- Usado para cruzar o domínio do relógio
- Usado para minimizar o erro ao mudar os sinais de analógico para digital
- Uma vez que é usado dentro de algoritmos genéticos, a ocorrência de paredes de presunto pode ser reduzida.
Desvantagens
As desvantagens do código cinza incluem o seguinte.
- Não apropriado para funções aritméticas
- Aplicável para poucas aplicações precisas
Formulários
As aplicações do código cinza incluem o seguinte.
- É usado em conversores analógico para digital
- Em comunicação digital para correção de um erro
- Ele reduz os erros ao mudar os sinais de analógico para digital.
- Quebra-cabeças matemáticos
- Minimização de um circuito booleano
- É usado para comunicação entre dois domínios de relógio
- Algorítmos genéticos
- Codificadores de posição
Código VHDL para código Gray para conversão binária é fornecido abaixo.
BIBLIOTECA ieee
USE ieee.std_logic_1164.ALL
entidade gray2bin é
porta (G: em std_logic_vector (3 até 0) - entrada de código cinza
bin: out std_logic_vector (3 downto 0) - saída binária
)
fim gray2bin
a arquitetura gate_level de gray2bin é
começar
–Xor portões.
am (3)<= G(3)
am (2)<= G(3) xor G(2)
sou (1)<= G(3) xor G(2) xor G(1)
sou (0)<= G(3) xor G(2) xor G(1) xor G(0)
fim
Conversor de código binário para cinza de 3 bits
Assuma os dígitos binários em um número binário de 3 bits como b0, b1, b2, onde quer que o bit ‘b2’ seja o MSB (bit mais significativo) e o bit ‘b0’ seja o LSB (bit menos significativo) do Binário. Os dígitos do código Gray são g0, g1, g2, onde quer que o dígito ‘g2’ seja o MSB (bit mais significativo), enquanto o dígito ‘g0’ é o LSB (bit menos significativo) do código Gray.
Código Binário - b2, b1, b0 | Código Gray - g2, g1, g0 |
000 | 000 |
001 | 001 |
010 | 011 |
011 | 010 |
100 | 110 |
101 | 111 |
110 | 101 |
111 | 100 |
Assim, a expressão booleana pode ser resolvida para o conversor de código binário em cinza usando k-map, podemos obter g2 = b2, g1 = b1⊕ b2 & g0 = b0 ⊕ b1. Da mesma forma, podemos mudar o número binário de n bits (bnb (n-1)… b2 b1 b0) em código Gray (gng (n-1)… g2 g1 g0).
Para LSB (bit menos significativo)
g0 = b0⊕b1
g1 = b1⊕b2
g2 = b1⊕b2
g (n-1) = b (n-1) ⊕ bn, gn = bn.
Por exemplo, converta 111010 números binários em código Gray.
Portanto, com base no algoritmo acima,
g0 = b0 ⊕ b1 => 0 ⊕ 1 = 1
g1 = b1 ⊕ b2 = 1 ⊕ 0 = 1
g2 = b2 ⊕ b3 = 0 ⊕1 = 1
g3 = b3 ⊕ b4 = 1⊕1 = 0
g4 = b4 ⊕ b5 = 1 ⊕ 1 = 0
g5 = b5 = 1 = 1
Portanto, a conversão de binário em código cinza será - 100111.
Conversor de código binário para cinza usando IC 7486
A conversão de binário em cinza e cinza em binário pode ser feita usando IC7486. Os componentes necessários para fazer isso são uma placa de ensaio, fios de conexão, LEDs, resistores, XOR (IC7486), interruptores de botão e uma bateria para a fonte de alimentação.
O pacote do IC7486 inclui principalmente quatro portas lógicas XOR, onde os pinos 7 e 14 fornecerão alimentação para todas as portas lógicas. O o / ps de uma única porta XOR é conectado à entrada da outra porta lógica dentro do mesmo ou outro chip até que eles compartilhem um terminal de aterramento semelhante.
Portanto, trata-se de conversor de binário para código cinza e conversor de cinza para código binário. Finalmente, pelas informações acima, podemos concluir que esses conversores desempenham um papel essencial na execução de diferentes operações de eletrônica digital bem como comunicações entre vários sistemas numéricos. Os exemplos de conversor de código que discutimos acima podem ser úteis para entender o conceito de como fazer esses cálculos. Aqui está uma pergunta para você, quais são as aplicações dos códigos cinza?