在单片机c中,怎么将bcd码怎么转换成十六进制?再比较这两个数是否相等?

如题所述

unsigned long BCDtoDec(const unsigned char *bcd, int length)
{
int i, tmp;
unsigned long dec = 0;

for(i=0; i<length; i++)
{
tmp = ((bcd[i]>>4)&0x0F)*10 + (bcd[i]&0x0F);
dec += tmp * power(100, length-1-i);
}

return dec;
}

转成10进制比较大小,如果需要16进制输出,再转成16
温馨提示:答案为网友推荐,仅供参考
相似回答