十六进制转化 bcd码

如题所述

void HextoBCD(u8 *pBuff,u8 len) //十六进制转为BCD码

{

u8 i,temp;

for(i=0;i<len;i++)

{

temp=pBuff[i]/10;

time[i]=pBuff[i]%10+temp*16;

}

}

bcd码就是用二进制数来表示常用的十进制数。就是用四个位的二进制来表示一个二进制数。一个字节一共有八个位,它就可以表示两个bcd码。比如,0FH等于二进制物15,用一个字节低四位来表示5,高四位来表示1合起来就是15H,不用转换两次的。

扩展资料

例如:

63÷10=6……3

即商是6,余数是

如果将商乘以16再加上余数,就是:6×16+3=99,其16进制数就是63H,即是十进制数63(16进制为3FH)的BCD码为63H。

如果在单片机中,程序这么写:char HEX,BCD;BCD=(HEX/10*16)+(HEX%10);

其中HEX存储十六进制数,BCD中存储的就是其BCD码。

参考资料来源:百度百科-BCD码

温馨提示:答案为网友推荐,仅供参考
相似回答