BCD編碼方式
在數字系統中,各種數據要轉換爲二進制代碼才能進行處理,而人們習慣於使用十進制數,所以在數字系統的輸入輸出中仍採用十進制數,這樣就產生了用四位二進制數表示一位十進制數的方法,這種用於表示十進制數的二進制代碼稱爲二-十進制代碼(Binary Coded Decimal),簡稱爲BCD碼。它具有二進制數的形式以滿足數字系統的要求,又具有十進制的特點(只有十種有效狀態)。在某些情況下,計算機也可以對這種形式的數直接進行運算。
4位二進制碼共有16種組合,可從中任取10種組合來表示0~9這10個數。根據不同的選取方法,可以編制出很多種BCD碼,如8421碼,5421碼,2421碼,5211碼和餘3碼。下表列出了這幾種BCD碼,其中的8421 BCD碼最爲常用。
常見的BCD碼錶示有以下幾種。
8421BCD編碼
這是一種使用最廣的BCD碼,是一種有權碼,其各位的權分別是(從最有效高位開始到最低有效位)8,4,2,1。
例 寫出十進數563.97D對應的8421BCD碼。
563.97D=0101 0110 0011 . 1001 01118421BCD
例 寫出8421BCD碼1101001.010118421BCD對應的十進制數。
1101001.010118421BCD=0110 1001 . 0101 10008421BCD=69.58D
在使用8421BCD碼時一定要注意其有效的編碼僅十個,即:0000~1001。四位二進制數的其餘六個編碼1010,1011,1100,1101,1110,1111不是有效編碼。
2421BCD編碼
2421BCD碼也是一種有權碼,其從高位到低位的權分別爲2,4,2,1,其也可以用四位二進制數來表示一位十進制數。其編碼規則如下表。
餘3碼
餘3碼也是一種BCD碼,但它是無權碼,但由於每一個碼對應的8421BCD碼之間相差3,故稱爲餘3碼,其一般使用較少,故正須作一般性瞭解,具體的編碼如下表。
表 常用BCD編碼表
|
非壓縮式和壓縮式BCD碼
BCD又分爲兩種,非壓縮式和壓縮式兩種。
前面這種81存成 “08,01” 是非壓縮式,而壓縮式會存成 “81h” (直接以十六進制儲存)。非壓縮的BCD碼只有低四位有效,而壓縮的BCD碼則將高四位也用上了,就是說一個字節有兩個BCD碼。BCD是用0和1表示十進制,如0000表示0,0001表示1,0010表示2。而壓縮的BCD是用00表示0,01表示1,10表示2,110表示3等。
例:
1234表示成非壓縮的BCD碼是00000001000000100000001100000100,也就是0x01020304;而壓縮BCD碼則表示成0001001000110100,也就是0x1234。
但壓縮的BCD並不固定,可看情況而定,所要的就是用最少的位數表示儘可能多的數。