BCD编码方案

1.BCD码的原理

BCD码(Binary-Coded Decimal)是一种用二进制数来编码十进制数字的方式。BCD码使用4位二进制数来表示一个十进制数的每一位。

2.8421码映射

8421码是BCD码的一种实例化。

0123456789
0000000100100011010001010110011110001001

因此132可以表示为0001 0011 0010,其中8421码没有1010~1111的定义(也就是10~15)。那么如果进行计算+运算呢?

5 + 8 = 13就可以先直接0101 + 1000 = 1101,但是BCD码没有1101定义怎么办呢?可以在原二进制值+6来进行进位修正。即:1101 + 0110 = 1 0011 = (13)10

9 + 9 = 18即:1001 + 1001 = 1 00101 0010本身不再BCD码的定义范围内,因此也需要+0110,最终结果为1 1000 = (18)10

补充:由于BCD码只使用了4bit位组中的10个定义,还剩下了6个定义没有被使用,因此如果我们修改映射方案就可以得到不同的编码规则。

3.余3码映射

8421码的基础上,每个码值的定义都加上0011(十进制为3)

0123456789
0011010001010110011110001001101010111100

4.2412码映射

这种映射方案直接改变了权值,把8421对应的二进制权值修改为2421,因此码值的映射关系如下:

0123456789
0000000100100011010010111100110111101111

但是这种编码方案有一个问题,比如5有两种表示方法01011011,因此我们还额外规定0~4的第一位二进制位是05~9的第一位二进制位是1,这样就可以使得定义变得唯一确定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

limou3434

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值