Binarno kodirani decimalni broj
Binarno kodirani decimalni broj (od engl. Binary Coded Decimal, BCD) je kod za zapis decimalnih brojeva. Zasnovan je na nizu ćelija, od kojih svaka ima po četiri bita i predstavlja jednu decimalnu cifru. Pošto četiri bita može da predstavi 16 vrednosti a za cifre je potrebno 10 (0-9), šest kombinacija se koriste za predznake brojeva i druge specijalne naznake.
Ovakav način kodiranja se mahom koristi kod digitrona.
Kodiranje i dekodiranje
[uredi | uredi izvor]Kodiranje i dekodiranje BCD-Kodova se vrši cifru po cifru, prema sledećoj tabeli:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 |
Primer: prelaz iz decimalnog u BCD broj.
9 0 0 0 0 8 3
↓ ↓ ↓ ↓ ↓ ↓ ↓
1001 0000 0000 0000 0000 1000 0011
To jest: (9000083)10 = (1001000000000000000010000011)BCD
Primer: prelaz iz BCD u decimalni broj.
0111 1000 0000 0001 0010 0100 0110
↓ ↓ ↓ ↓ ↓ ↓ ↓
7 8 0 1 2 4 6
To jest: (0111100000000001001001000110)BCD = (7801246)10
Sabiranje
[uredi | uredi izvor]Recimo da su date dve serije BCD-ćelija anan-1...a0 i bnbn-1...b0. Prilikom sabiranja ove dva niza ćelija se sabiraju ćeliju po ćeliju, počev od one sa najmanjim indeksom. Ukoliko dođe do prekoračenja vrednosti 1111, suvišni bitovi se prenose na susednu ćeliju sa višim indeksom a trenutna se sabira sa 6 (0110).
6 8 7 5 2 4 7
0 8 9 9 6 7 6 +
------------------------------------------
0110 1000 0111 0101 0010 0100 0111
0000 1000 1001 1001 0110 0111 0110 +
------------------------------------------
0111 0001 0000 1110 1000 1011 1101
+0110 +0110
------------------------------------------
0111 0111 0110 1110 1000 1011 1101
Nakon ovog dela procesa na red dolazi korekcija, kod koje se takođe polazi od ćelije sa najmanjim indeksom. Ukoliko neka ćelija ima vrednost veću od 9 (znači: 1010, 1011, 1100, 1101, 1110 ili 1111), vrši se korekcija: ta ćelija se sabira sa brojem 6 (0110) a prekoračenje se prenosi na ćeliju sa višim stepenom.
0111 0111 0110 1110 1000 1011 1101
+0110
------------------------------------------
0111 0111 0110 1110 1000 1100 0011
+0110
------------------------------------------
0111 0111 0110 1110 1001 0010 0011
+0110
------------------------------------------
0111 0111 0111 0100 1001 0010 0011
------------------------------------------
7 7 7 4 9 2 3