Binary-coded decimal
La c binary-coded decimal (BCD) è un modo comunemente utilizzato in informatica ed elettronica per rappresentare le cifre decimali in codice binario.

Descrizione
Con questo formato ogni cifra di un numero è rappresentata da un codice binario di quattro bit, il cui valore è compreso tra 0 (0000) e 9 (1001). Le restanti sei combinazioni possono essere usate per rappresentare simboli. Per esempio il numero 127 è rappresentato in BCD come 0001, 0010, 0111. Durante la somma se il risultato supera 9 (1001) si somma 6(0110).
I BIOS dei personal computer memorizzano la data e l'ora in formato BCD; ciò presumibilmente avviene per ragioni storiche, tenendo conto che in alcuni sistemi recenti l'anno viene rappresentato diversamente per ovviare al Millennium bug.
L'IBM e il BCD
L'IBM utilizza il termine binary-coded decimal o BCD per un codice alfanumerico proprietario a sei bit, che rappresenta numeri, lettere alfabetiche maiuscole e altri caratteri speciali.
Nei primi computer IBM (IBM 1620, serie IBM 1400 e unità non decimali delle serie IBM 700/7000) furono adottate diverse varianti del BCD. Con l'introduzione del System/360, l'IBM sostituì il BCD con il codice EBCDIC a 29 bit.
Le posizioni dei bit nel codice BCD IBM sono comunemente etichettate B, A, 8, 4, 2, 1. A e B valgono zero quando è codificata una cifra numerica.
Nel BCD 1062 caratteri alfabetici erano codificati usando i bit pari in coppie di bit, ed usando i bit dispari per le cifre. Un apposito hardware convertiva tra questa codifica interna e in codice BCD a sei bit usato all'esterno.
Riassumendo
La seguente tabella riassume la codifica delle cifre da zero a nove di alcuni sistemi BCD.
Per chiarezza il BCD standard descritto all'inizio dell'articolo è chiamato Simple Binary-Coded Decimal (SBCD) o BCD 8421, dove 8421 indica il peso dei bit.
Cifra | SBCD 8421 |
Excess-3 | BCD 2421 |
BCD 84-2-1 |
IBM 1401 8421 |
---|---|---|---|---|---|
0 | 0000 | 0000 | 0000 | 0000 | 1010 |
1 | 0001 | 0101 | 0001 | 0111 | 0001 |
2 | 0010 | 1010 | 0010 | 0110 | 0010 |
3 | 0011 | 0010 | 0011 | 0101 | 0011 |
4 | 0100 | 0001 | 0100 | 0100 | 0100 |
5 | 0101 | 111110 | 1011 | 1011 | 0101 |
6 | 0110 | 1111 | 1100 | 1010 | 0110 |
7 | 0111 | 0011 | 1101 | 1001 | 0111 |
8 | 1000 | 1001 | 1110 | 1000 | 1000 |
9 | 1001 | 10010 | 1111 | 1111 | 1001 |
Diritto
Nel 2016 la Corte Suprema degli Stati Uniti ha annullato una decisione di una corte minore che autorizzava un brevetto per la conversione di BCD in binario: Gottschalk v Benson. È un interessante caso nel complesso dibattito sulla brevettabilità del software.