Código BCD (do inglês Binary-Coded Decimal, ou Decimal Codificado em Binário) é um sistema de codificação onde cada algarismo decimal (0 a 9) é representado individualmente por seu equivalente em código binário de 4 bits. Diferentemente da conversão binária convencional, onde o número decimal inteiro é transformado em um único valor binário, no BCD cada dígito decimal é convertido separadamente para sua representação binária de 4 bits.

O código BCD é amplamente utilizado em eletrônica digital, especialmente em aplicações que necessitam exibir informações numéricas para usuários humanos, como relógios digitais, calculadoras, displays de sete segmentos e instrumentos de medição.

Características

thumb|300px|Relógio BCD exibindo a hora em formato binário. Cada coluna vertical representa um dígito decimal em código BCD.

No código BCD, cada dígito decimal é representado por exatamente 4 bits, formando o que é conhecido como código BCD 8421, onde os pesos binários são 8, 4, 2 e 1. Por exemplo:

Decimal 5 = BCD 0101 (0×8 + 1×4 + 0×2 + 1×1) Decimal 9 = BCD 1001 (1×8 + 0×4 + 0×2 + 1×1) Decimal 169 = BCD 0001 0110 1001 (cada dígito separadamente)

Combinações proibidas

Como são necessários 4 bits para representar cada dígito decimal (0-9), e 4 bits podem representar 16 valores diferentes (24 = 16), existem seis combinações binárias que não são utilizadas no BCD padrão:

1010 (decimal 10) 1011 (decimal 11) 1100 (decimal 12) 1101 (decimal 13) 1110 (decimal 14) 1111 (decimal 15)

O aparecimento dessas combinações em um sistema que utiliza BCD geralmente indica erro de operação ou falha no circuito.

Comparação com outros sistemas

O BCD não deve ser confundido com hexadecimal, apesar de ambos usarem 4 bits por dígito. Enquanto o hexadecimal utiliza todos os 16 valores possíveis (0-F), o BCD utiliza apenas os 10 primeiros (0-9).

Comparação do número decimal 255 em diferentes representações:

Binário puro: 11111111 (8 bits) BCD: 0010 0101 0101 (12 bits) Hexadecimal: FF (2 dígitos)

Tipos de BCD

BCD empacotado (Packed BCD)

No BCD empacotado, dois dígitos decimais são armazenados em um único byte (8 bits). Cada nibble (grupo de 4 bits) representa um dígito decimal. Por exemplo, o número decimal 93 em BCD empacotado é representado como:

Byte completo: 10010011 Primeiro nibble (1001): representa 9 Segundo nibble (0011): representa 3

Este formato economiza espaço de memória e é amplamente utilizado em microprocessadores e sistemas embarcados.

BCD desempacotado (Unpacked BCD)

No BCD desempacotado, cada dígito decimal ocupa um byte completo, onde apenas os 4 bits menos significativos contêm o valor BCD e os 4 bits mais significativos são zeros ou não utilizados. Por exemplo, o número decimal 93 em BCD desempacotado seria:

Primeiro byte: 00001001 (representa 9) Segundo byte: 00000011 (representa 3)

Este formato facilita o acesso individual a cada dígito, mas consome mais memória.

Vantagens e desvantagens

Vantagens

Conversão simplificada: A conversão entre decimal e BCD é muito mais simples e rápida do que a conversão para binário puro, pois cada dígito é tratado individualmente Interface com displays: Ideal para sistemas que utilizam displays de sete segmentos, pois a estrutura do BCD alinha-se naturalmente com a forma como o hardware de exibição funciona Precisão decimal: Não há problemas de arredondamento em operações com frações decimais, como ocorre na conversão binária Facilidade de depuração: Valores BCD são mais fáceis de interpretar visualmente durante o desenvolvimento e testes de circuitos digitais

Desvantagens

Ineficiência de armazenamento: Requer mais bits para representar o mesmo número em comparação com binário puro. Por exemplo, 999 requer 12 bits em BCD, mas apenas 10 bits em binário Complexidade aritmética: Operações matemáticas em BCD requerem circuitos mais complexos e procedimentos de correção. Por exemplo, ao somar em BCD, é necessário adicionar 6 (0110) quando o resultado excede 9 Desperdício de estados: Das 16 combinações possíveis com 4 bits, apenas 10 são utilizadas, desperdiçando 37,5% dos estados disponíveis

Aplicações

Relógios digitais

miniaturadaimagem|300px|Relógio que exibe a hora em formato BCD, onde cada LED representa um bit.

Relógios digitais utilizam contadores BCD para representar horas, minutos e segundos. Circuitos integrados como o DS1307 são RTC (Real-Time Clock) que fornecem informações de tempo codificadas em BCD, facilitando a interface com microcontroladores e displays.

Displays de sete segmentos

A saída BCD de contadores e microcontroladores é frequentemente decodificada por circuitos integrados especializados, como o 7447 (para displays de ânodo comum) ou o CD4511 (para displays de cátodo comum), que convertem o código BCD nos sinais apropriados para acender os segmentos corretos do display.

Calculadoras e instrumentos de medição

Calculadoras eletrônicas frequentemente realizam operações internas em BCD, especialmente quando lidam com valores monetários ou medições que exigem precisão decimal exata. Instrumentos como multímetros digitais e voltímetros também utilizam BCD para processar e exibir medições.

Sistemas financeiros

Sistemas que processam valores monetários frequentemente utilizam BCD para evitar erros de arredondamento que podem ocorrer em representações binárias de números decimais com casas fracionárias.

Operações aritméticas

Adição em BCD

A adição de números BCD requer um passo de correção quando o resultado de uma adição binária excede 9 (1001) ou gera um carry. O procedimento é:

Somar os dois dígitos BCD como números binários de 4 bits Se o resultado for maior que 9 (1001) ou houver carry, adicionar 6 (0110) para correção O carry gerado é propagado para o próximo dígito

Exemplo: 76 + 8 = 84 em BCD

0111 0110 (76 em BCD) + 0000 1000 (8 em BCD)

0111 1110 (resultado intermediário: 7E, inválido em BCD) + 0000 0110 (correção: adicionar 6 ao segundo dígito)

1000 0100 (84 em BCD correto)

Subtração em BCD

A subtração em BCD pode ser realizada usando o complemento de dez ou através de circuitos especializados que implementam empréstimos (borrow) entre dígitos.

Circuitos integrados comerciais

Vários circuitos integrados implementam funções relacionadas a BCD:

74LS90: Contador de década BCD (0-9) 74LS47 / 7447: Decodificador BCD para display de 7 segmentos (ânodo comum) CD4511: Decodificador BCD para display de 7 segmentos (cátodo comum) em tecnologia CMOS DS1307: Relógio de tempo real (RTC) com saída BCD 4511: Decodificador/driver BCD para 7 segmentos com latch

Variações do código BCD

Além do BCD 8421 padrão, existem outras variações de códigos BCD com diferentes pesos binários:

Excess-3 (ou XS-3): Cada dígito BCD tem o valor 3 adicionado, resultando em um código auto-complementar 2421 BCD: Utiliza pesos 2, 4, 2, 1 5211 BCD: Utiliza pesos 5, 2, 1, 1 Gray BCD: Variação usando código Gray para minimizar erros em transições

Cada variação possui características específicas úteis para determinadas aplicações, como facilitar operações aritméticas ou reduzir erros em sistemas analógico-digitais.

Ver também

Sistema binário Sistema decimal Sistema de numeração hexadecimal Display de sete segmentos Código de Gray Contadores digitais Circuito sequencial

Ligações externas

Categoria:Eletrônica digital Categoria:Sistemas de numeração Categoria:Códigos binários