BCD編碼方式

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編碼表

8421碼

5421碼

2421碼

5211碼

3碼

0

0000

0000

0000

0000

0000

1

0001

0001

0001

0001

0100

2

0010

0010

0010

0100

0101

3

0011

0011

0011

0101

0110

4

0100

0100

0100

0111

0111

5

0101

1000

0101

1000

1000

6

0110

1001

0110

1001

1001

7

0111

1010

0111

1100

1010

8

1000

1011

1110

1101

1011

9

1001

1100

1111

1111

1100

8421

5421

2421

5211

 

非壓縮式和壓縮式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並不固定,可看情況而定,所要的就是用最少的位數表示儘可能多的數。
 

發佈了17 篇原創文章 · 獲贊 7 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章