BCD代碼。Binary-Coded Decimal?,簡稱BCD,稱BCD碼或二轉(zhuǎn)十進(jìn)制代碼,亦稱二進(jìn)碼十進(jìn)數(shù)。是一種二進(jìn)制的數(shù)字編碼形式,用二進(jìn)制編碼的十進(jìn)制代碼。這種編碼形式利用了四個(gè)位元來儲存一個(gè)十進(jìn)制的數(shù)碼,使二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換得以快捷的進(jìn)行。這種編碼技巧,最常用于會(huì)計(jì)系統(tǒng)的設(shè)計(jì)里,因?yàn)闀?huì)計(jì)制度經(jīng)常需要對很長的數(shù)字串作準(zhǔn)確的計(jì)算。相對于一般的浮點(diǎn)式記數(shù)法,采用BCD碼,既可保存數(shù)值的精確度,又可免卻使電腦作浮點(diǎn)運(yùn)算時(shí)所耗費(fèi)的時(shí)間。此外,對于其他需要高精確度的計(jì)算,BCD編碼亦很常用。
由于十進(jìn)制數(shù)共有0、1、2、……、9十個(gè)數(shù)碼,因此,至少需要4位二進(jìn)制碼來表示1位十進(jìn)制數(shù)。4位二進(jìn)制碼共有2^4=16種碼組,在這16種代碼中,可以任選10種來表示10個(gè)十進(jìn)制數(shù)碼,共有N=16!/(16-10)!約等于2.9乘以10的10次方種方案。常用的BCD代碼列于末。
BCD碼的運(yùn)算法則
BCD碼的運(yùn)算規(guī)則:BCD碼是十進(jìn)制數(shù),而運(yùn)算器對數(shù)據(jù)做加減運(yùn)算時(shí),都是按二進(jìn)制運(yùn)算規(guī)則進(jìn)行處理的。這樣,當(dāng)將 BCD碼傳送給運(yùn)算器進(jìn)行運(yùn)算時(shí),其結(jié)果需要修正。
修正的規(guī)則是:當(dāng)兩個(gè)BCD碼相加,如果和等于或小于 1001(即十進(jìn)制數(shù) 9),不需要修正;如果相加之和在 1010 到1111(即十六進(jìn)制數(shù) 0AH~0FH)之間,則需加 6 進(jìn)行修正;如果相加時(shí),本位產(chǎn)生了進(jìn)位,也需加 6 進(jìn)行修正。這樣做的原因是,機(jī)器按二進(jìn)制相加,所以 4 位二進(jìn)制數(shù)相加時(shí),是按“逢十六進(jìn)一”的原則進(jìn)行運(yùn)算的,而實(shí)質(zhì)上是 2 個(gè)十進(jìn)制數(shù)相加,應(yīng)該按“逢十進(jìn)一”的原則相加,16 與10相差 6,所以當(dāng)和超過 9或有進(jìn)位時(shí),都要加 6 進(jìn)行修正。下面舉例說明。
需要修正 BCD碼運(yùn)算值的舉例。
(1) 計(jì)算 5+8;
(2) 計(jì)算 8+8
解:(1) 將 5 和 8 以 8421 BCD輸入機(jī)器,則運(yùn)算如下:
0 1 0 1
+) 1 0 0 0
1 1 0 1 結(jié)果大于 9
+) 0 1 1 0 加 6 修正
1 0 0 1 1 13 的 BCD碼
結(jié)果是 0011,即十進(jìn)制數(shù) 3,還產(chǎn)生了進(jìn)位。5+8=13,結(jié)論正確。
(2)將8以8421 BCD輸入機(jī)器,則運(yùn)算如下:
1 0 0 0
+)1 0 0 0
1 0 0 0 0 結(jié)果大于9
+)0 1 1 0 加6修正
1 0 1 1 0 16的BCD碼
結(jié)果是0110,即十進(jìn)制的6,而且產(chǎn)生進(jìn)位。8+8=16,結(jié)論正確。
微機(jī)原理代碼: (AL=BCD 5,BL=BCD 8) 設(shè)AH=0,則
ADD AL,BL
AAA
結(jié)果為 AX=0104H,表示非壓縮十進(jìn)制數(shù),CF=1,AF=1,AH=1,AL=1
使用AAA指令,可以不用屏蔽高半字節(jié),只要在相加后立即執(zhí)行AAA指令,便能在AX中得到一個(gè)正確的非壓縮十進(jìn)制數(shù)
壓縮BCD碼與非壓縮BCD碼的區(qū)別—— 壓縮BCD碼的每一位用4位二進(jìn)制表示,一個(gè)字節(jié)表示兩位十進(jìn)制數(shù)。例如10010110B表示十進(jìn)制數(shù)96D;非壓縮BCD碼用1個(gè)字節(jié)表示一位十進(jìn)制數(shù),高四位總是0000,低4位的0000~1001表示0~9.例如00001000B表示十進(jìn)制數(shù)8.
-
十進(jìn)制
+關(guān)注
關(guān)注
0文章
67瀏覽量
13207 -
BCD碼
+關(guān)注
關(guān)注
1文章
52瀏覽量
18291 -
8421碼
+關(guān)注
關(guān)注
1文章
8瀏覽量
4040
發(fā)布評論請先 登錄
相關(guān)推薦
評論