BCD转二进制、二进制转BCD

  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);
}

你可能感兴趣的:(C语言)