问题补充说明:我现在用的单片机输入是十六进制的数 怎样把它转换为bcd码的输出 用C语言实现 应该如何编程 谢谢
voidHextoBCD(u8*pBuff,u8len)//十六进制转为BCD码
{
u8i,temp;
for(i=0;i<len;i++)
{
temp=pBuff[i]/10;
time[i]=pBuff360问答[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。
如果在单片机中,程序这么写:charHEX,BCD;BCD=(HEX/10*1孔间丝延6)+(HEX%10);
其中HEX存储十察领止他误六进制数,BCD中存储的就是其BCD码。
参考资料来源:百度百科-BCD码
标签:十六进制,bcd,转化