BCD与HEX之间相互转换
最近在做一个项目,用到这个东东,可是网上找到的一些相关函数还是有点错误,干脆自己写了一个,大家看能用就用吧 。
//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; //将得到的十进制数返回
}
【BCD与HEX之间相互转换】//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;
}
推荐阅读
- 架空地板安装具体步骤与注意事项
- 木质装饰材料的种类与概况
- 地脚螺栓安装技术与要求 地脚螺栓怎么计算
- 派雅门窗与黄派门窗哪个好 门窗如何选购
- STM8S 与 STM32F IO口输出速率测试
- 石灰粉用途有哪些 石灰粉的危害与副作用
- ARM7 LPC2378 远程升级----ISP与IAP
- 细木工板与胶合板的选购差异
- 简易衣柜如何选购与搭配 简易衣柜分类介绍
- 卧室衣柜如何选购与搭配