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