在數字係統中,各種數據要轉換為二進製代碼才能進行處理,而人們習慣於使用十進製數,所以在數字係統的輸入輸出中仍采用十進製數,這樣就產生了用四位二進製數表示一位十進製數的方法,這種用於表示十進製數的二進製代碼稱為二-十進製代碼(Binary Coded Decimal),簡稱為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編碼表
十進製數 8421BCD碼 2421BCD碼 餘3碼
0 0000 0000 0011
1 0001 0001 0100
2 0010 0010 0101
3 0011 0011 0110
4 0100 0100 0111
5 0101 1011 1000
6 0110 1100 1001
7 0111 1101 1010
8 1000 1110 1011
9 1001 1111 1100
10 0001,0000 0001,0000 0100,0011
非壓縮式和壓縮式:
BCD又分為兩種,非壓縮式和壓縮式兩種。
前麵這種81秒存成 “08,01” 是非緊密式,而緊密式會存成 “81h”
(直接以十六進製儲存)。
非壓縮的BCD碼隻有低四位有效,而壓縮的BCD碼則將高四位也用上了,就是說一個字節有兩個BCD碼。
BCD是用0和1表示十進製,如0000表示0,0001表示1,0010表示2,舉例子1234表示成0001001000110100,而壓縮的bcd是用00表示0,01表示1,10表示2,110表示3等,但壓縮的BCD並不固定,可看情況而定,所要的就是用最少的位數表示盡可能多的數。