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

2024-11-18 13:41:13
推荐回答(1个)
回答(1):

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

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

return dec;
}

转成10进制比较大小,如果需要16进制输出,再转成16