Binarno kodirani decimalni broj

S Vikipedije, slobodne enciklopedije

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