發表於 2018-03-02 09:38:39
二進位編碼的十進位數,簡稱BCD碼(Binarycoded Decimal)。這種方法是用4位二進位碼的組合代表十進位數的0,1,2,3,4,5,6 ,7,8,9 十個數符。最常用的BCD碼稱為8421BCD碼,8.4.2.1 分別是4位二進數的位取值。
將十進位數75.4轉換為BCD碼如:
75.4=(0111 0101.0100)BCD 若將BCD碼1000 0101.0101轉換為十進位數如: (1000 0101.0101)BCD=85.5
注意:同一個8位二進位代碼表示的數,當認為它表示的是二進位數和認為它表示的是二進位編碼的十進位數時,數值是不相同的。
例如:00011000,當把它視為二進位數時,其值為24;但作為2位BCD碼時, 其值為18。
又例如00011100,(這表示8位的二進位數)如將其視為二進位數,其值為28,但不能當成BCD碼,因為在8421BCD碼中,它是個非法編碼 。
右圖為十進位數和8421BCD編碼的對應關係表:
由8421碼加3後形成的餘3碼是一種BCD碼,它是由8421碼加3後形成的(即餘3碼是在8421碼基礎上每位十進位數BCD碼再加上二進位數0011得到的)。因為8421碼中無1010~1111這6個代碼,所以餘3碼中無0000~0010、1101~1111這6個代碼。餘3碼不具有有權性,但具有自補性,餘3碼是一種「對9的自補碼」
8421碼是中國大陸的叫法,
即BCD代碼。Binary-Coded Decimal,簡稱BCD,稱BCD碼或二-十進位代碼,亦稱二進碼十進數。是一種二進位的數字編碼形式,用二進位編碼的十進位代碼。這種編碼形式利用了四個位元來儲存一個十進位的數碼,使二進位和十進位之間的轉換得以快捷的進行。這種編碼技巧,最常用於會計系統的設計裡,因為會計制度經常需要對很長的數字串作準確的計算。相對於一般的浮點式記數法,採用BCD碼,既可保存數值的精確度,又可免卻使電腦作浮點運算時所耗費的時間。此外,對於其他需要高精確度的計算,BCD編碼亦很常用。
由於十進位數共有0、1、2、……、9十個數碼,因此,至少需要4位二進位碼來表示1位十進位數。4位二進位碼共有2^4=16種碼組,在這16種代碼中,可以任選10種來表示10個十進位數碼,共有N=16!/(16-10)!約等於2.9乘以10的10次方種方案。常用的BCD代碼列於末。
最常用的BCD編碼,就是使用「0」至「9」這十個數值的二進碼來表示。這種編碼方式,在中國大陸稱之為「8421碼」。除此以外,對應不同需求,各人亦開發了不同的編碼方法,以適應不同的需求。這些編碼,大致可以分成有權碼和無權碼兩種:
有權BCD碼,如:8421(最常用)、2421、5421…
無權BCD碼,如:餘3碼、格雷碼…
餘三碼是一種對9的自補代碼,因而可給運算帶來方便。其次,在將兩個餘三碼表示的十進位數相加時,能正確產生進位信號,但對「和」必須修正。修正的方法是:如果有進位,則結果加3;如果無進位,則結果減3。
通過WEWB32軟體實驗,輸入BCD碼轉換成餘三碼的邏輯函數為:
輸入埠a,b,c,d,輸出埠e,f,g,h,用G3,G2,G1,G0表示:
G3=A』BC+A』BD+ABC』
G2=A』B』C+A』BC』D』+B』C』D
G1=A』C』D』+A』CD+B』C』D』
G0=A』D』+B』C』D』
有邏輯函數畫出邏輯電路圖如下:
打開APP閱讀更多精彩內容
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴