BCD:Binary-Coded Decimal,二-十进制代码,也叫二进码十进数。比如BCD码0x12是十进制数12,而0X12的十六进制是18。
BCD转二进制数:
uint8_t BCDToByte(uint8_t Value)
{
uint32_t tmp = 0U;
tmp = (Value & 0xF0) >> 4) * 10; //取高位后乘以10
return (tmp + (Value & 0x0F)); //再加上低位
}
二进制转BCD:
uint8_t ByteToBCD(uint8_t Value)
{
uint8_t bcdhigh = 0;
while(Value >= 10)
{
bcdhigh++;//得到十位上的值
Value -= 10;
}
return ((bcdhigh << 4) | Value);
}