发布网友 发布时间:2023-06-01 07:49
共1个回答
热心网友 时间:2024-07-27 15:15
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码