BCD码与二进制的转换

本文详细介绍了BCD码与二进制之间的转换算法及原理,包括从二进制到BCD码的转换过程中如何通过加3修正,以及从BCD码到二进制转换时的减3修正策略。同时,提到了实验室任务中编写相关模块及使用iverilog进行编译、模拟和观察波形的方法。
摘要由CSDN通过智能技术生成

利用的数据结构:每列4bits
百位|十位|个位|二进制高4位|二进制低4位

二进制→BCD码

算法

  1. 从低到高依次判断个位、十位、百位这三列的数是否大于等于5,如果是则加3修正
  2. 左移整个数据结构1位
  3. 重复1和2步8次(重复次数取决于需要表示的数字的二进制形式最大位数,此处为8)
  4. 结束循环,则百位十位个位就是对应的BCD码

原理

4位二进制,大于等于16进位;4位BCD,大于等于10进位。两个相差了6。
要处理的话,判断是否大于等于10,是的话说明BCD要进位,加6使得二进制进位,这样是先移位后判断修正。
可以改一下,等价地,先判断是否大于等于5,如果是则说明在左移后会大于等于10需要进位,那么就加3,这样移位后相当于加了6,是先判断修正后移位。这样做实际上是预先判断下次移位后的情况了,所以在最后一次移位之后不会出现需要修正的情况。

BCD码→二进制

算法

  1. 右移整个数据结构1位
  2. 从低到高依次判断个位、十位、百位这三列的数是否大于等于8,如果是则减3修正(顺序其实不重要,因为减3不会对当前列以外的列产生任何影响)
  3. 重复1和2步8次(重复次数取决于需要表示的数字的二进制形式最大位数,此处为8)
  4. 结束循环,则数据结构的最后8位就是对应的二进制码

原理</

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值