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.

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:
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:
O aparecimento dessas combinações em um sistema que utiliza BCD geralmente indica erro de operação ou falha no circuito.
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:
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:
Este formato economiza espaço de memória e é amplamente utilizado em microprocessadores e sistemas embarcados.
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:
Este formato facilita o acesso individual a cada dígito, mas consome mais memória.

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.
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 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 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.
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 é:
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)
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.
Vários circuitos integrados implementam funções relacionadas a BCD:
Além do BCD 8421 padrão, existem outras variações de códigos BCD com diferentes pesos binários:
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.