BCD<->HEX转换
一、bcd->hex
uint8_t BCD_to_HEX(uint8_t BCD_Data)
{
if(BCD_Data > 0 && BCD_Data <= 99)
return ( (BCD_Data / 10 * 16) + (BCD_Data % 10) );
else
return 0;
}
uint16_t DX_to_HX(uint16_t DX_Data)
{
return (((DX_Data / 1000) << 12) | ((DX_Data %1000 / 100) << 8) | ((DX_Data % 100 / 10 ) << 4) | (DX_Data % 10));
}
二、hex->bcd
uint8_t HEX_to_BCD(uint8_t HEX_Data)
{
if(((HEX_Data >> 8) >= 0 && (HEX_Data >> 8) <= 9) && ((HEX_Data & 0x0f) >= 0) && (HEX_Data & 0x0f) <= 9)
return ((HEX_Data >> 4) * 10 + (HEX_Data & 0x0f));
else
return 0;
}
uint16_t HX_to_DX(uint16_t HX_Data)
{
return ((HX_Data >> 12) * 1000 + ((HX_Data & 0x0f00) >> 8) * 100 + ((HX_Data & 0x00f0) >> 4) * 10 + (HX_Data & 0x000f));
}