BCD碼概述
在日常生活中人們習慣使用十進制,於是通常的輸入/輸出的數據也是用十進制實現人機互動。為了解決慣用的十進制與計算機能夠識別的二進制之間的差別,引入BCD編碼。
BCD碼以4位為一組,選用0000B~1001B這10種狀態,代表十進制中的0~9共10個數。當BCD碼與十進制進行互換時,可以按4位一組,逐組進行互換。
例子1-1 將 62.142D 轉換成BCD碼。
(62.142)D = 62.142 = (01100010.000101000010)BCD
例子1-2 將10000101.001001011BCD轉換成十進制數。
(10000101.001001011)BCD = 10000111.001001011000 =(87.258)D
要將一個二進制數轉換稱BCD碼,可以先將它轉換成十進制數,然後再將十進制數轉換成BCD。同樣將BCD碼轉換稱二進制數,也是先轉換為十進制數,再轉換為二進制數。
例子1-3 將11111000100B轉換為BCD碼。
(11111000100)B = 1988D = 0001100110001000 = (0001100110001000)BCD
BCD碼的運算,是指參加運算的數為BCD碼,結果也為BCD碼。運算時,BCD碼低位與高位之間是逢十進一的,而4位二進制數是逢十六進一,在實際執行時計算機仍然是二進制運算操作。
形式表示
負BCD數可用兩種形式表示,一種表示為帶有符號位的正數;另一種表示為某較大BCD數的補碼。例如,一58的BCD數可表示為:
0 0101 1000
其中,符號位為0,表示其後的BCD數為負。
另一種表示法就是用58相對某一數值範圍的最大BCD數的補碼來表示。如果在所考慮的數值範圍內最大數為100(一百),那么,一58可用42來表示,即:
一0101 1000——→0100 0010
轉換的規則如下:表示負值的正數相對原負數而言,其最低位BCD數應取BCD補碼,其餘各位BCD數應取BCD反碼。
例子
例1、用補碼錶示一367:
-(367)0011 0110 0111
取BCD反碼
(633) 0110 0011 0011;
例2、在四位BCD數的範圍內,用補碼錶示一367。
用四位BCD數表示一367應為:
一0000 0011 O110 011l 一367
此BCD數的最低位取BCD補碼;其餘各位取BCD反碼,則得:
1001 0110 0011 0011 +9633
在四位BCD數範圍內,此數與+367相加所得之和為0。