BCD码的介绍与十进制数间代码转换

一、BCD码介绍

BCD码(Binary-Coded Decimal‎)称为二进码,用4位二进制数来表示1位十进制数中的0~9这10个数码。是十进代码中最常用的一种。

在这种编码方式中,每一位二值代码的“1”都代表一个固定数值。将每位“1”所代表的 二进制数加起来就可以得到它所代表的十进制数字。因为代码中从左至右看每一位“1”分别代表数字“8”“4”“2”“1”,故得名8421码。其中每一位 “1”代表的十进制数称为这一位的权。因为每位的权都是固定不变的,所以8421码是恒权码

BCD码可分为有权码和无权码两类:

  1. 有权BCD码有8421码、2421码、5421码,其中8421码是最常用的BCD码。
  2. 无权BCD码有余3码,余3循环码等。

类比8421BCD码 可以得到 5421码 2421码

由此可知 8421码 5241码和2421码 都是 十进代码 只是最右面位的权值不同

图中可以看到0-9位 几个进制的BCD码都是以二进制的正常形式换算,从十开始的BCD码开始不一样了起来

BCD码:以四位二进制数为一单位来表示一个数。例如:十进制数10的BCD码为0001 0000;显而易见后四位的0000 表示的是十进制的个位,0001则就是十位了。十六进制转BCD码也是同理。

二、BCD 码与十进制间转换

 8421码转十进制数

unsigned char bcd_to_hex(unsigned char data)
{
    unsigned char temp;

    temp = ((data>>4)*10 + (data&0x0f));
    return temp;
}

十进制数转8421码

unsigned char hex_to_bcd(unsigned char data)
{
    unsigned char temp;

    temp = (((data/10)<<4) + (data%10));
    return temp;
}

附:几种码制之间的转换关系

十进制数二进制8421码5421码2421码余三码余三循环码
00000000000000000000110010
1000100010001000101000110
2001000100010001001010111
3001100110011001101100101
4010001000100010001110100
5010101011000101110001100
6011001101001110010011101
7011101111010110110101111
8100010001011111010111110
9100110011100111111001010
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值