数字电路-二进制转BCD码

杀马特。学长 韩版系。学妹 提交于 2019-11-30 12:07:19

BCD码实际上就是将原本的十进制数的每一位用一个4位二进制数表示,每一位0-9。

二进制4位能够表达的数字范围是0-15。

 

由此可见BCD码的一段与普通四位二进制来表示十进制位有6的进制差。所以这就是二进制转化为BCD码的关键所在。下面来讲讲主要步骤:

  • 先预估十进制数的位数,预先给BCD码分好段,此时的BCD码为空无任何数据
  • 接着讲原本的二进制数的最高位一端从BCD码的最低位端插入,也可以看作是将二进制数与BCD码同时左移每次将二进制的头砍掉补到BCD码最后,但个人觉得逐位插入更加形象~
  • 关键来啦,之前提到过BCD码每一个四位二进制(表示十进制的一位)存储范围是0-9,而原本的二进制四位的存储范围是0-15,所以二进制在逐位后端插入BCD码时,若BCD码的某一段(四位二进制)>9 则我们手动给该段+6强行使其进位满足BCD码的存储范围的要求--简单的说就是一直同时左移,某一段>9就+6。
  • 这里可以进行优化,就是常用的+3(+011)左移法,即在左移之前先判断本段是否>4(>0100),若大于则左移之后必然会超过9,所以在左移之前先在该段+3(+011),那么左移之后就已经实现了进位啦。
  • 就这么一直将二进制逐位从底端插入(左移),同时保持每段的范围在0-9内最终就能得到BCD码聊。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!