Codificação binária decimal

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.[1][2] 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.[3]

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.[2][4]

Características

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.[3] 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)[4]

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:[1][3]

  • 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.[1]

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).[1]

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

  • 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.[5] 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.[5]

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.[5] 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.[3]

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[1][6]
  • 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[2][4]
  • Precisão decimal: Não há problemas de arredondamento em operações com frações decimais, como ocorre na conversão binária[3]
  • Facilidade de depuração: Valores BCD são mais fáceis de interpretar visualmente durante o desenvolvimento e testes de circuitos digitais[7]

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[1][4]
  • 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[5]
  • 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[3]

Aplicações

Relógios digitais

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.[7] 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.[8]

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.[9][10]

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.[2] Instrumentos como multímetros digitais e voltímetros também utilizam BCD para processar e exibir medições.[6]

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.[3]

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.[5] O procedimento é:

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

Exemplo: 76 + 8 = 84 em BCD[5]

  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.[5]

Circuitos integrados comerciais

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

  • 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:[3]

  • 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.[3]

Ver também

Referências

  1. a b c d e f «Binary Coded Decimal or BCD Numbering System». Electronics Tutorials (em inglês). 2 de agosto de 2022. Consultado em 15 de janeiro de 2026 
  2. a b c d «What Is BCD (Binary-Coded Decimal)? Simple Explanation with Examples». RealPars (em inglês). Consultado em 15 de janeiro de 2026 
  3. a b c d e f g h i «Digital Electronics - Binary Coded Decimal». Learn About Electronics (em inglês). Consultado em 15 de janeiro de 2026 
  4. a b c d e «How are binary numbers converted to BCD numbers?». CircuitBread (em inglês). 30 de setembro de 2024. Consultado em 15 de janeiro de 2026 
  5. a b c d e f g «BCD or Binary Coded Decimal». GeeksforGeeks (em inglês). 15 de julho de 2025. Consultado em 15 de janeiro de 2026 
  6. a b «BCD Codes in Digital Electronics». Sanfoundry (em inglês). 8 de abril de 2025. Consultado em 15 de janeiro de 2026 
  7. a b c «BCD Counter Circuit using the 74LS90 Decade Counter». Electronics Tutorials (em inglês). 31 de março de 2025. Consultado em 15 de janeiro de 2026 
  8. «DS1307 Datasheet and Product Info». Analog Devices (em inglês). Consultado em 15 de janeiro de 2026 
  9. «Display Decoder - BCD to 7 Segment Display Decoder». Electronics Tutorials (em inglês). 4 de dezembro de 2024. Consultado em 15 de janeiro de 2026 
  10. «CD4511 - A BCD to 7-Segment Display Driver Chip». Build Electronic Circuits (em inglês). 13 de junho de 2023. Consultado em 15 de janeiro de 2026 

Ligações externas