BCD 码
BCD | |
---|---|
术语名称 | BCD |
英语名称 | BCD |
别名 | 二进码十进数, Binary-Coded Decimal |
BCD[1] 是一种数字字符编码方式,将每一个十进制位通过 4 位二进制码编码。其字符集中通常仅含有 0~9 这 10 个数字,且被编码为 4 个二进制位。
BCD 码有多种不同变体,其中最常见的是 8421BCD 码。
如果从进制的角度上看,被写成 8421BCD 码的十进制数是一种二进制-十进制混合进制,位权为 [math]\displaystyle{ 1,2,4,8;10,20,40,80;100,200,400,800;\cdots }[/math] 。
具体编码
BCD 码仅用 4 个二进制位所产生的 16 个码位编码 0~9 的数字。
第一类编码使用权值,即类似正常的数字,每一位有固定的权值。
其中最朴素的方法是用对应的二进制数直接表示 0~9 的数字,并且其余码位视为无效,此时四位数字从左到右权值分别为 8、4、2、1 ,故称为 8421BCD 码(Simple BCD, SBCD, BCD 8421)。 其中如果允许剩余码位正常表示,则属于数字的自然二进制码,称为四位自然二进制码或 8421 码(Natural BCD, NBCD)。
5421BCD 码代表四位数字从左到右的权值为 5、4、2、1 。其一个较好的性质是能使得 6~9 的编码和 0~4 的编码对应。这种编码中同一个数字的编码不唯一,规范编码取正常的 0~4 ,然后 5~9 为加上了最高位的 0~4 。
2421BCD 码代表四位数字从左到右的权值为 2、4、2、1 。其一个较好的性质是能使得所有位反转后得到的是其对 9 的补(这一性质称为自反码)。这种编码中同一个数字的编码不唯一,规范编码取正常的 0~4 ,然后 5~9 为 4~0 的补。
第二类是不适用权值的,通常是在以上编码基础上经过某种变换的结果。
最常见的是偏移二进制码,对应自然二进制码基础上加减常数。
余 3 码(excess-3, XS-3, Stibitz code)代表加 3 的 8421 码,也是自反码。允许取反占有权重的话,可以看作四位的权重分别为 8、4、-2 取反、-1 取反。
余 6 码(excess-6, XS-6)代表加 6 的 8421 码。
此外,任意一种 BCD 码如果两个编码被打包在一个 8 位的字节内,称为压缩的;否则,每个数字处于每个字节的最后 4 位,称其为非压缩的。
数的内部表示 | |
---|---|
十进制数的二进制编码 | BCD 、 Gray 码 、 奇偶校验码 、 字符表示 |
有符号整数的机器数 | 原码、反码、补码、移码 |
有符号小数的机器数 | 定点数、浮点数(IEEE 754) |
记数系统 | |||
---|---|---|---|
位值制记数法 | 进位制记数法/标准位值制记数法(进制) | 二进制、八进制、十进制、十六进制、…… | |
非标准位值制记数法 | 带符号进位制记数法/ 平衡记数法(平衡进制) |
平衡三进制、…… | |
双射记数法(双射进制) | 一进制、双射十进制、双射二十六进制、…… | ||
位权是幂 但基数不是自然数 (非自然数进制) |
[math]\displaystyle{ -2 }[/math] 、 [math]\displaystyle{ -4 }[/math] 、…… | ||
[math]\displaystyle{ \sqrt{2} }[/math] 、 [math]\displaystyle{ \sqrt{3} }[/math] 、 [math]\displaystyle{ \sqrt[12]{2} }[/math] 、…… | |||
[math]\displaystyle{ 2i }[/math] 、 [math]\displaystyle{ \sqrt[4]{2}i }[/math] 、 [math]\displaystyle{ 2\omega }[/math] 、 [math]\displaystyle{ \sqrt[3]{2}\omega }[/math] 、 [math]\displaystyle{ -1\pm i }[/math] 、…… | |||
位权不是幂(混合进制) | 二五混合进制、阶乘进制、…… | ||
其他 | [math]\displaystyle{ p }[/math]-进数 | ||
质数记数法、…… | |||
符值制记数法 | 罗马记数法、希腊记数法、…… |
- ↑ 全称为 Binary-Coded Decimal ,译为二进码十进数或二-十进制码,全称只用于解释这个词语,通常使用中只使用缩写。