BCD命令

2025年9月18日 (木) 09:41時点におけるAdministrator (トーク | 投稿記録)による版 (ページの作成:「'''BCD命令'''とは、BCD形式(Binary Coded Decimal:二進化十進数)のデータに対して演算や変換を行う命令の総称です。 コンピューターで数値を扱う場合、よくあるのは「1バイトで0から255の数値を表す方式」です。昨今のプログラミングの教科書にはその方法しか書かれていないことが一般的です。 一方、BCD形式では「1バイトで0から9までの数…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

BCD命令とは、BCD形式(Binary Coded Decimal:二進化十進数)のデータに対して演算や変換を行う命令の総称です。

コンピューターで数値を扱う場合、よくあるのは「1バイトで0から255の数値を表す方式」です。昨今のプログラミングの教科書にはその方法しか書かれていないことが一般的です。

一方、BCD形式では「1バイトで0から9までの数字」を表します。つまり人間が見やすい10進数表現のままメモリに格納しています。ちなみにメモリ節約のため「4ビットで1桁」を表すパックドBCDという方式の方が一般的でした。

BCD形式は人間が見やすいという利点に加えて、BCD命令では「桁数を指定して演算できる」という特徴がありました。昨今のプログラミング言語でいえば関数の引数にbyte型の配列と桁数を指定するイメージです。

 byte[] add(byte[] a, byte[] b, int digits)

BCD命令はInt32やInt64のような大きな数値型が標準でなかった8ビットCPUの時代に大きな数値を手軽に扱いたい場合に重宝されました。