Loading AI tools
二进制数码表示的十进制数字 来自维基百科,自由的百科全书
二進碼十進數(英語:Binary-Coded Decimal,簡稱BCD,中國大陸稱BCD碼或二-十進制編碼)是一種十進制數字編碼的形式。在這種編碼下,每個十進制數字用一串單獨的二進制位元來儲存與表示。常見的有以4位元表示1個十進制數字,稱為壓縮的BCD碼(compressed or packed);或者以8位元表示1個十進制數字,稱為未壓縮的BCD碼(uncompressed or zoned)。
這種編碼技術,最常用於會計系統的設計裡,因為會計制度經常需要對很長的數字做準確的計算。相對於一般的浮點式記數法,採用BCD碼,既可儲存數值的精確度,又可使電腦免除作浮點運算所耗費的時間。此外,對於其他需要高精確度的計算,BCD編碼亦很常用。
BCD碼的主要優點是在機器格式與人可讀的格式之間轉換容易,以及十進制數值的高精度表示。BCD碼的主要缺點是增加了實現算術運算的電路的複雜度,以及儲存效率低。
對應不同需求,各人亦開發了不同的編碼方法,以適應不同的需求。這些編碼,大致可以分成有權碼和無權碼兩種:
8421碼又稱為BCD碼,是十進制代碼中最常用的一種。[1]在這種編碼方式中,每一位二值代碼的「1」都代表一個固定數值。將每位「1」所代表的十進制數加起來就可以得到它所代表的十進制數位。因為代碼中從左至右看每一位「1」分別代表數字「8」「4」「2」「1」,故得名8421碼。其中每一位「1」代表的十進制數稱為這一位的權。因為每位的權都是固定不變的,所以8421碼是恆權碼。
餘3碼是由8421碼加上0011形成的一種無權碼,由於它的每個字元編碼比相應8421碼多3,故稱餘3碼。例如,十進制字元5的餘3碼等於5的8421碼0101加上0011,即為1000。同樣,餘3碼中也有6種狀態0000,0001,0010,1101,1110和1111是不允許出現的。 餘3碼也是一種對9的自補代碼,因而可給運算帶來方便。其次,在將兩個餘3碼表示的十進制數相加時,能正確產生進位訊號,但對「和」必須修正。修正的方法是:如果有進位,則結果加3;如果無進位,則結果減3。 餘3碼與十進制之間的轉換也是按位元進行的,值得注意的是每位十進制數的編碼都應餘3。
2421碼是一種有權碼,權值由高到低分別為2、4、2、1,特點是大於等於5的4位元二進制數中最高位為1,小於5的最高位為0。如5的2421碼表示為1011而不是0101。
以下為三種常見的BCD編碼的比較。
十進數 | 8421-BCD碼 | 餘3-BCD碼 | 2421-A碼 |
---|---|---|---|
(M10) | D C B A | C3 C2 C1 C0 | a3 a2 a1 a0 |
0 | 0 0 0 0 | 0 0 1 1 | 0 0 0 0 |
1 | 0 0 0 1 | 0 1 0 0 | 0 0 0 1 |
2 | 0 0 1 0 | 0 1 0 1 | 0 0 1 0 |
3 | 0 0 1 1 | 0 1 1 0 | 0 0 1 1 |
4 | 0 1 0 0 | 0 1 1 1 | 0 1 0 0 |
5 | 0 1 0 1 | 1 0 0 0 | 1 0 1 1 |
6 | 0 1 1 0 | 1 0 0 1 | 1 1 0 0 |
7 | 0 1 1 1 | 1 0 1 0 | 1 1 0 1 |
8 | 1 0 0 0 | 1 0 1 1 | 1 1 1 0 |
9 | 1 0 0 1 | 1 1 0 0 | 1 1 1 1 |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.