前言
最近在写(gan)作业(ddl)的时候,遇到需要写一段二进制数字转变为 8421
型 BCD
码,这里记录一下 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;
}