把十进制数转换成bcd码


static unsigned int shi_to_bcd(shi_num) //如要把56转换成0x56

{

//先把5和6分开,在把5移位到bit4~bit7,所以是左移4位,6应该放在bit0~bit3,在将bit4~bit7和bit0~bit3进行或运算

return (((shi_num/10)<<4) | ((shi_num%10)<<0));

}



把bcd码转换成十进制


static unsigned int bcd_to_shi(bcd_num) //如要把0x56转换成56

{

return ((((bcd_num & 0xf0)>>4) * 10) + (bcd_num & 0x0f));

}