×
嵌入式 > 技术百科 > 详情

BCD与HEX之间相互转换

发布时间:2020-05-27 发布时间:
|

最近在做一个项目,用到这个东东,可是网上找到的一些相关函数还是有点错误,干脆自己写了一个,大家看能用就用吧。

 //Val_BCD的范围(<0x99,>0)

INT8U BCD2HEX(INT8U Val_BCD)

{

 INT8U temp;

 temp = Val_BCD&0x0F; //按位与,temp得到低四位数。

 Val_BCD >>= 4;             //右移四位,将高四位移到低四位的位置,得到高四位码值。

 Val_BCD &= 0x0F;         //防止移位时高位补进1,只保留高四位码值

 Val_BCD *= 10;              //高位码值乘以10

 temp += Val_BCD;         //然后与第四位码值相加。

 return temp;                   //将得到的十进制数返回

}

 

//Val_HEX的范围(<0xFF,>0)

INT16U HEX2BCD(INT8U Val_HEX)

{

    INT16U Val_BCD;

    INT8U temp;

    temp = Val_HEX%100;

    Val_BCD = ((INT16U)Val_HEX)/100<<8;

    Val_BCD = Val_BCD|temp/10<<4;

    Val_BCD = Val_BCD|temp%10;

    return Val_BCD;

}


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
德州仪器推出稳压误差仅为1%的无电容LDO产品