BCD 码

来自GSXAB的知识库
(重定向自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 位,称其为非压缩的。


数的内部表示
十进制数的二进制编码 BCDGray 码奇偶校验码 、 字符表示
有符号整数的机器数 原码反码补码移码
有符号小数的机器数 定点数浮点数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]-进数
质数记数法、……
符值制记数法 罗马记数法希腊记数法、……
  1. 全称为 Binary-Coded Decimal ,译为二进码十进数二-十进制码,全称只用于解释这个词语,通常使用中只使用缩写。