2006年07月15日

BCD (Binary Coded Decimal)

CD上に記録された分、秒、フレームは、1バイト=8ビットで一つの数 (0〜255 or -128〜127) を表すのではなく、上4ビットで10の位を、下4ビットで1の位を表します。この場合、0x09 + 0x01 = 0x10 (=16) となり、0x0aといった数は存在しないことになり、1バイトで表される量は 00〜99 となります。
このような表現方保を 2進化10進法 (BCD, Binary Coded Decimal) といいます。

こうして表示された量を使いやすいよう変換するには、次のようにします。

BYTE d; //通常のデータ
BYTE b; //BCDで表されたデータ

b = (d / 10) * 0x10 + (d % 10);
もしくは
b = (d / 10 * 16) | (d % 10);

d = (b >> 4) * 10 + (b & 0x0f);
もしくは
d = (b / 0x10) * 10 + (b % 0x10);

posted by 七癖 at 16:53| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。