読み方 : パックじゅっしんすう
パック10進数【packed BCD】
概要

10進数の各桁は「0000」(0)から「1001」(9)までの4ビットパターンに置き換えられる。パック10進数では、これを2つ並べて1バイト(8ビット)を構成し、1バイトに10進数2桁の数値を収める。
最下位バイトの下位4ビットには符号コードを格納する。正数には「1100」(16進数でC)、負数には「1101」(同D)を用いるのが一般的だが、処理系によっては正数に「1111」を用いる場合もある。偶数桁の数値では、桁数と符号コードを合わせたビット数が8の倍数にならないため、先頭に「0000」を補って整数バイトに調整する。
コンピュータが数値を扱う際は2進数で表現するのが一般的だが、パック10進数では人間が数の表記や計算に用いる10進数をそのまま格納する。これにより、2進数による演算で生じがちな10進小数の丸め誤差を避けやすく、金融や会計における金額計算など、正確な10進演算が求められる用途に適している。同じく2進化10進数の表現形式の一つである「ゾーン10進数」では1バイトで1桁を格納するが、パック10進数は1バイトで2桁を格納するため、同じ桁数の数値を約半分の記憶容量で保持できる。
この形式は米IBM社のメインフレームで古くから標準的に採用されており、事務処理ソフトウェアの開発に適したプログラミング言語の「COBOL」でも組み込みのデータ型として定義されている。現在でも基幹業務システムやレガシーシステムとのデータ交換において扱われることがある。
(2026.6.29更新)