BCD碼可分為有權(quán)碼和無(wú)權(quán)碼兩類(lèi):有權(quán)BCD碼有8421碼、2421碼、5421碼,其中8421碼是最常用的;無(wú)權(quán)BCD碼有余3碼、格雷碼等。
1. 8421 BCD碼
8421 BCD碼是最基本和最常用的BCD碼,它和四位自然二進(jìn)制碼相似,各位的權(quán)值為8、4、2、1,故稱(chēng)為有權(quán)BCD碼。和四位自然二進(jìn)制碼不同的是,它只選用了四位二進(jìn)制碼中前10組代碼,即用0000~1001分別代表它所對(duì)應(yīng)的十進(jìn)制數(shù),余下的六組代碼不用。
2. 5421 BCD碼和2421 BCD碼
5421 BCD碼和2421 BCD碼為有權(quán)BCD碼,它們從高位到低位的權(quán)值分別為5、4、2、1和2、4、2、1。這兩種有權(quán)BCD碼中,有的十進(jìn)制數(shù)碼存在兩種加權(quán)方法,例如,5421 BCD碼中的數(shù)碼5,既可以用1000表示,也可以用0101表示;2421 BCD碼中的數(shù)碼6,既可以用1100表示, 也可以用0110表示。這說(shuō)明5421 BCD碼和2421 BCD碼的編碼方案都不是惟一的,表1-2只列出了一種編碼方案。
上表中2421 BCD碼的10個(gè)數(shù)碼中,0和9、1和8、2和7、3和6、4和5的代碼對(duì)應(yīng)位恰好一個(gè)是0時(shí),另一個(gè)就是1。就稱(chēng)0和9、1和8互為反碼。
3. 余3 碼
余3碼是8421 BCD碼的每個(gè)碼組加3(0011)形成的。常用于BCD碼的運(yùn)算電路中。
4. Gray碼(格雷碼)
Gray碼也稱(chēng)循環(huán)碼,其最基本的特性是任何相鄰的兩組代碼中,僅有一位數(shù)碼不同,因而又叫單位距離碼。
Gray碼的編碼方案有多種,典型的Gray碼如下表所示。從表中看出,這種代碼除了具有單位距離碼的特點(diǎn)外,還有一個(gè)特點(diǎn)就是具有反射特性,即按表中所示的對(duì)稱(chēng)軸為界,除最高位互補(bǔ)反射外,其余低位數(shù)沿對(duì)稱(chēng)軸鏡像對(duì)稱(chēng)。利用這一反射特性可以方便地構(gòu)成位數(shù)不同的Gray碼。
計(jì)算機(jī)中的BCD碼,經(jīng)常使用的有兩種格式,即分離BCD碼,組合BCD碼。
所謂分離BCD碼,即用一個(gè)字節(jié)的低四位編碼表示十進(jìn)制數(shù)的一位,例如數(shù)82的存放格式為:
_ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示無(wú)關(guān)值。
組合BCD碼,是將兩位十進(jìn)制數(shù),存放在一個(gè)字節(jié)中,例82的存放格式是1000 0010
由于編碼是將每個(gè)十進(jìn)制數(shù)用一組4位二進(jìn)制數(shù)來(lái)表示,因此,若將這種BCD碼直接交計(jì)算機(jī)去運(yùn)算,由于計(jì)算機(jī)總是把數(shù)當(dāng)作二進(jìn)制數(shù)來(lái)運(yùn)算,所以結(jié)果可能會(huì)出錯(cuò)。例:用BCD碼求38+49。