即BCD代碼。Binary-Coded Decimal,簡稱BCD,稱BCD碼或二-十進(jìn)制代碼,亦稱二進(jìn)碼十進(jìn)數(shù)。是一種二進(jìn)制的數(shù)字編碼形式,用二進(jìn)制編碼的十進(jìn)制代碼。這種編碼形式利用了四個位元來儲存一個十進(jìn)制的數(shù)碼,使二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換得以快捷的進(jìn)行。這種編碼技巧,最常用于會計(jì)系統(tǒng)的設(shè)計(jì)里,因?yàn)闀?jì)制度經(jīng)常需要對很長的數(shù)字串作準(zhǔn)確的計(jì)算。相對于一般的浮點(diǎn)式記數(shù)法,采用BCD碼,既可保存數(shù)值的精確度,又可免卻使電腦作浮點(diǎn)運(yùn)算時所耗費(fèi)的時間。此外,對于其他需要高精確度的計(jì)算,BCD編碼亦很常用。
由于十進(jìn)制數(shù)共有0、1、2、……、9十個數(shù)碼,因此,至少需要4位二進(jìn)制碼來表示1位十進(jìn)制數(shù)。4位二進(jìn)制碼共有2^4=16種碼組,在這16種代碼中,可以任選10種來表示10個十進(jìn)制數(shù)碼,共有N=16!/(16-10)!約等于2.9乘以10的10次方種方案。常用的BCD代碼列于末。
常用BCD編碼方式
最常用的BCD編碼,就是使用"0"至"9"這十個數(shù)值的二進(jìn)碼來表示。這種編碼方式,在中國大陸稱之為“8421碼”。除此以外,對應(yīng)不同需求,各人亦開發(fā)了不同的編碼方法,以適應(yīng)不同的需求。這些編碼,大致可以分成有權(quán)碼和無權(quán)碼兩種:
有權(quán)BCD碼,如:8421(最常用)、2421、5421…
無權(quán)BCD碼,如:余3碼、格雷碼…
常用BCD編碼表
非壓縮式和壓縮式BCD碼
BCD又分為兩種,非壓縮式和壓縮式兩種。
前面這種81存成 “08,01” 是非壓縮式,而壓縮式會存成 “81h” (直接以十六進(jìn)制儲存)。非壓縮的BCD碼只有低四位有效,而壓縮的BCD碼則將高四位也用上了,就是說一個字節(jié)有兩個BCD碼。BCD是用0和1表示十進(jìn)制,如0000表示0,0001表示1,0010表示2。而壓縮的BCD是用00表示0,01表示1,10表示2,110表示3等。
例:
1234表示成非壓縮的BCD碼是00000001000000100000001100000100,也就是0x01020304;而壓縮BCD碼則表示成0001001000110100,也就是0x1234。
但壓縮的BCD并不固定,可看情況而定,所要的就是用最少的位數(shù)表示盡可能多的數(shù)。
由于十進(jìn)制數(shù)共有0、1、2、……、9十個數(shù)碼,因此,至少需要4位二進(jìn)制碼來表示1位十進(jìn)制數(shù)。4位二進(jìn)制碼共有2^4=16種碼組,在這16種代碼中,可以任選10種來表示10個十進(jìn)制數(shù)碼,共有N=16!/(16-10)!約等于2.9乘以10的10次方種方案。常用的BCD代碼列于末。
常用BCD編碼方式
最常用的BCD編碼,就是使用"0"至"9"這十個數(shù)值的二進(jìn)碼來表示。這種編碼方式,在中國大陸稱之為“8421碼”。除此以外,對應(yīng)不同需求,各人亦開發(fā)了不同的編碼方法,以適應(yīng)不同的需求。這些編碼,大致可以分成有權(quán)碼和無權(quán)碼兩種:
有權(quán)BCD碼,如:8421(最常用)、2421、5421…
無權(quán)BCD碼,如:余3碼、格雷碼…
常用BCD編碼表
|
BCD又分為兩種,非壓縮式和壓縮式兩種。
前面這種81存成 “08,01” 是非壓縮式,而壓縮式會存成 “81h” (直接以十六進(jìn)制儲存)。非壓縮的BCD碼只有低四位有效,而壓縮的BCD碼則將高四位也用上了,就是說一個字節(jié)有兩個BCD碼。BCD是用0和1表示十進(jìn)制,如0000表示0,0001表示1,0010表示2。而壓縮的BCD是用00表示0,01表示1,10表示2,110表示3等。
例:
1234表示成非壓縮的BCD碼是00000001000000100000001100000100,也就是0x01020304;而壓縮BCD碼則表示成0001001000110100,也就是0x1234。
但壓縮的BCD并不固定,可看情況而定,所要的就是用最少的位數(shù)表示盡可能多的數(shù)。