十六进制转化 bcd码

来源:百度知道 编辑:UC知道 时间:2024/09/15 00:44:24
我现在用的单片机输入是十六进制的数 怎样把它转换为bcd码的输出 用C语言实现 应该如何编程 谢谢

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。

如果在单片机中,程序这么写:cha