二進碼十進數
维基百科,自由的百科全书
二進碼十進數(英语:Binary-Coded Decimal,簡稱BCD,大陆称BCD码或二-十进制编码)是一種十进制的數字編碼形式。這種編碼下的每个十进制数字用一串单独的二进制位元來儲存表示。常见的有4位元表示1个十进制数字,称为压缩的BCD码(compressed or packed); 或者8位元表示1个十进制数字,称为未压缩的BCD码(uncompressed or zoned)。
這種編碼技术,最常用於會計系統的設計裡,因為會計制度經常需要對很長的數字串作準確的計算。相對於一般的浮點式記數法,採用BCD碼,既可保存數值的精確度,又可免卻使電腦作浮點運算時所耗費的時間。此外,對於其他需要高精確度的計算,BCD編碼亦很常用。
BCD码的主要优点是在机器格式与人可读的格式之间转换容易,以及十进制数值的高精度表示。BCD码的主要缺点是增加了实现算术运算的电路的复杂度,以及存储效率低。
常用BCD編碼方式 [编辑]
最常用的BCD編碼,就是使用"0"至"9"這十個數值的二進碼來表示。這種編碼方式,稱為8421BCD, 除此以外,對應不同需求,各人亦開發了不同的編碼方法,以適應不同的需求。這些編碼,大致可以分成有權碼和無權碼兩種:
- 有权码,如:8421(最常用)、2421、5421…
- 无权码,如:餘3码、格雷码…
以下為三種常見的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 | 0 1 0 1 |
| 6 | 0 1 1 0 | 1 0 0 1 | 0 1 1 0 |
| 7 | 0 1 1 1 | 1 0 1 0 | 0 1 1 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 |