我正在将十六进制转换0xE0
为 BCD。当我这样做时,我得到了 64。我知道这是完全错误的,也许这是我的 C++ 代码中的某些东西,但 64 听起来并不正确。有任何想法吗?是0xE0
特例吗?(0xE0
十进制为 224。)
这是我的代码的一部分:
unsigned char Hex2BCD(unsigned char param)
{ unsigned char lo;
unsigned char hi;
unsigned char val;
unsigned char buf[10];
hi = param/ 10;
lo = param- (hi * 10);
val= (hi << 4) + lo;
return val;
}