Бинарно кодирани децимални број

Из Википедије, слободне енциклопедије

Бинарно кодирани децимални број (од енгл. Binary Coded Decimal, BCD) је код за запис децималних бројева. Заснован је на низу ћелија, од којих свака има по четири бита и представља једну децималну цифру. Пошто четири бита може да представи 16 вредности а за цифре је потребно 10 (0-9), шест комбинација се користе за предзнаке бројева и друге специјалне назнаке.

Овакав начин кодирања се махом користи код дигитрона.

Кодирање и декодирање[уреди]

Кодирање и декодирање БЦД-Кодова се врши цифру по цифру, према следећој табели:

0 1 2 3 4 5 6 7 8 9
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Пример: прелаз из децималног у БЦД број.

  9     0     0     0     0     8     3
↓     ↓     ↓     ↓     ↓     ↓     ↓
1001  0000  0000  0000  0000  1000  0011

То јест: (9000083)10 = (1001000000000000000010000011)BCD

Пример: прелаз из БЦД у децимални број.

  0111  1000  0000  0001  0010  0100  0110
↓     ↓     ↓     ↓     ↓     ↓     ↓
7     8     0     1     2     4     6

То јест: (0111100000000001001001000110)BCD = (7801246)10

Сабирање[уреди]

Рецимо да су дате две серије БЦД-ћелија anan-1...a0 и bnbn-1...b0. Приликом сабирања ове два низа ћелија се сабирају ћелију по ћелију, почев од оне са најмањим индексом. Уколико дође до прекорачења вредности 1111, сувишни битови се преносе на суседну ћелију са вишим индексом а тренутна се сабира са 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

Након овог дела процеса на ред долази корекција, код које се такође полази од ћелије са најмањим индексом. Уколико нека ћелија има вредност већу од 9 (значи: 1010, 1011, 1100, 1101, 1110 или 1111), врши се корекција: та ћелија се сабира са бројем 6 (0110) а прекорачење се преноси на ћелију са вишим степеном.

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