关于BCD码和BIN转换的问题,再使用单片机与时钟芯片通讯中经常碰到,以下对其做一个简单说明:假如10进制中有一个数字29,BCD码表示:0010 1001(BCD码中4位表示十进制中的一位!),2进制表示:0001 1101 。以下为转换函数:
static unsigned char Bcd2Bin(unsigned char bcd)
{
return ( ((bcd>>4)&0x0f)*10 + (bcd & 0x0f) );
}
static unsigned char Bin2Bcd(unsigned char bin)
{
return (bin/10<<4 | bin%10);
}