この前、新入社員にBCDコードを整数に変換する方法を質問された。おそらく同じようなことを来年入社する新人にも聞かれると思うので説明用のメモを残す。
bcd.cpp
unsigned char bcd = 0x12; // BCDコード(2桁の整数)
int a1 = bcd & 0x0F // 1桁目の取得
int a2 = (bcd >> 4) & 0x0F; // 2桁目の取得
int num = a2 * 10 + a1; // 計算して整数値を求める