前言

最近在写(gan)作业(ddl)的时候,遇到需要写一段二进制数字转变为 8421BCD 码,这里记录一下 c 语言实现的源码。

8421 BCD码是最基本和最常用的 BCD 码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权 BCD 码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。

代码实现

int bin2bcd(char val)
{
    int x=0;
    for(int i=7;i>=0;i--){
        if((x&0xf)>=5){
            x+=3;
        }
        if(((x&0xf0)>>4)>=5){
            x+=(3<<4);
        }
        x<<=1;
        x= (((val&(1<<i))>>i) | x&(~1));
    }
    return x;
}
最后修改:2020 年 10 月 11 日
如果觉得我的文章对你有用,请随意赞赏