• 一次说清楚BCD编码


    背景

    在银行报文中,有很多用到BCD编码的地方,BCD编码和常见的二进制编码或者ASCII编码又有区别,所以很容易搞错,弄错概念,下面笔者就一次把BCD编码讲清楚。
     

    一,概念

    1,BCD编码,英文全称是Binary-Coded Decimal‎,中文名称是二进制编码的十进制数,也就是用4位二进制数来表示1位十进制数中的0~9这10个数码。

    2,只有10个码,分别对应0,1,2,3,4,5,6,7,8,9 这10个数字。 这是重点,千万不要弄复杂了。

    3,因为只有0到9这10个数字,所以这个BCD编码里一定不会出现A,B,C,D,E,F这些16进制才有的字符。

    4,BCD编码是二进制的数字编码形式,用二进制编码表示的十进制代码,所以编码里只有0和1。

    5,BCD编码是4位二进制数来表示10个十进制数,所以都是4位,就是都是4位0和1组成的编码。

    二,类型

    因为用4位0或者1组成代码组合有16种,但是用来表示10个数字,显然就多了,所以会有很多种组合方式,也就是有很多种BCD编码的子类型,比如8421码,2421码,5421码,余3码,余3循环码。

    1,有权码

    所谓有权码,就是说4位二进制码的每一位,都对应一个十进制的数值,比如8421码种,从右往左,分别对应是1,2,4,8这4个数字,如果某一位是1,就表示有这个数字,最终把这4个位上数字加起来,就表示整个8421二进制码对应的十进制数了,比如1001就是9了。

    8421码

    从高位到低位的权值分别为8、4、2、1 。 只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。

    5421码

    从高位到低位的权值分别为5、4、2、1。编码方案不是惟一的,有些十进制数,会有两个码。比如1000和0101都是表示十进制数5 。

    2421码

    从高位到低位的权值分别为2、4、2、1。编码方案不是惟一的,有些十进制数,会有两个码。比如1100和0110都是表示十进制数6。

    2,无权码

    所谓无权码,就是说4位二进制数的每一位,没有对应的数值,而是整个编码直接对应一个数字。

    余3码

    在8421码的基础上,加上0011(即十进制数字3),形成的码。常用于BCD码的运算电路中。

    余3循环码

    相邻编码只有一位变化。

    三,实例

    注意:5421码和2421码都有几个数字有两个码

    数值8421码5421码2421码余3码余3循环码
    000000000000000110010
    100010001000101000110
    200100010001001010111
    300110011001101100101
    401000100

    0100

    1010

    01110100
    501011000
    0101
    1011
    0101
    10001100
    60110

    0110

    1001

    1100
    0110
    10011101
    701111010
    0111

    1101

    0111

    10101111
    810001011111010111110
    910011100111111001010

    四,补充

    压缩BCD码和非压缩BCD码

    压缩BCD码的每一位十进制数用4位二进制表示,一个字节(8位)表示两位十进制数。

    例如:10010110表示十进制数96。

    非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9。

    例如:00001000表示十进制数8.

    总结

    第一次接触的时候,真心很懵,但当我看到只有10个码的时候,觉得不过如此。。。

    人啊,就是这样,对新东西畏惧,对熟悉的东西缺失尊重!

    码字不易,记得点赞关注哟!

  • 相关阅读:
    Linux设备树 01 ———— 内核笔记
    Java实现ORM第一个api-FindAll
    做着做着感觉自媒体做不下去了?
    911. 在线选举
    匹配子序列问题
    sqlserver 事务
    【Web前端面试】葵花宝典(2022版本)——React 篇
    前端抛出后台的异常(bug)
    javascript 中的纯函数
    软件公司之间合作的保密协议
  • 原文地址:https://blog.csdn.net/wangerrong/article/details/132733986