十進制有權(quán)碼
是指表示一個十進制數(shù)位的4位基2碼的每一位有確定的位權(quán)。
用得最普遍的是8421碼,即4個基2碼位的權(quán)從高向低分別為8、4、2和1,使用基2碼的0000、0001、…1001這10種組合,分別表示0到9這十個值。這種編碼的優(yōu)點是這4位基2碼之間滿足二進制的規(guī)則,而十進制數(shù)位之間則是十進制規(guī)則,故稱這種編碼為以二進制編碼的十進制(Binary Coded Decimal)數(shù),簡稱BCD碼或二-十進制碼。另一個優(yōu)點是在數(shù)字符的ASCII碼與這種編碼之間的轉(zhuǎn)換方便,即取每個數(shù)字符的ASCII碼的低4位的值便直接得到該數(shù)字的BCD碼,入/出操作簡便。在計算機內(nèi)實現(xiàn)BCD碼之間的算術(shù)運算要復(fù)雜一些,在某些情況下,需要對加法運算的結(jié)果進行修正。修正規(guī)則是:
若兩個8421碼數(shù)相加之和等于或小于1001,即10進制的9,不需要修正;
若相加之和在10到15之間,一方面應(yīng)向高位產(chǎn)生一進位,本位還要進行加6修正,進位是在進行加6修正時產(chǎn)生的;
若相加之和在16和18之間時,向高位的進位會在相加過程中自己產(chǎn)生,對本位還需進行加6修正。下面給出三種情況下的具體例子。
例如,1+8=9的運算結(jié)果是正確的,不必修正。
0 0 0 1
+)1 0 0 0 (1)10+(8)10=(9)10
1 0 0 1
而4+9的結(jié)果就必須用 +6 修正,進位是在修正過程中產(chǎn)生的。
0 1 0 0
+)1 0 0 1 (4)10+(9)10 =(1)10 (3)10
1 1 0 1
+) 0 1 1 0
1 0 0 1 1
而7+9的結(jié)果也必須用 +6 修正,進位是在相同加過程中產(chǎn)生的。
0 1 1 1
+)1 0 0 1 (7)10+(9)10 =(1)10(6)10
1 0 0 0 0
+) 0 1 1 0
1 0 1 1 0
另外幾種有權(quán)碼,如2421、5211、84-2-1、4311碼(表2.9),也都是用4位有權(quán)基2碼表示一個十進制數(shù)位,但這4位基2碼之間并不符合二進制規(guī)則。這幾種有權(quán)碼的特性表現(xiàn)為:
當(dāng)采用2421、5211和4311編碼時,任何兩個十進制數(shù)位相加產(chǎn)生10或大于10的結(jié)果,相應(yīng)的基2碼相加會向高一位產(chǎn)生進位,有利于實現(xiàn)逢十進位的計數(shù)和加法規(guī)則。
任何兩個相加之和等于9的十進制數(shù)位的基2碼,互為反碼,即滿足十進制數(shù)按9互補(9's Complement)的關(guān)系,有利于簡化減法處理。表2.9給出的是上面提到的十進制數(shù)位的編碼方案。
表2.9 四位有權(quán)碼
十進制數(shù) |
8421碼 |
2421碼 |
5211碼 |
840201碼 |
4311碼 |
評論
查看更多