パック10進数

パック10進数（packed BCD）とは、数値をコンピュータ上で表現する手法の一つで、BCDをベースに定義されている。COBOLのUSAGE句ではCOMP-3形式として表されることが多い。当初はゾーン10進数で表現していたが、1桁につき1バイト（= 8ビット）を要し、場所をとる。そこで、無駄になっていたゾーンビットにも数値を割り当て、1バイトで2桁表現できるようにしたものがパック10進数である。

十進法の1桁を4桁の数値ビットで表現するが、正の数か負の数かを判断するため、符号ビットと呼ばれる4ビットを、数値の末尾に追加する。符号ビットは、正の数に12、負の数に13が割り当てられている。ただし、東芝のオフィスコンピュータでは、符号ビットが特殊な値を採るので互換性の問題が発生する。

 構造 
以下に、+789を表現した場合を例に、パック10進数の構造を示す。

   0111
  1000
  1001
  1100
   数値ビット
  数値ビット
  数値ビット
  符号ビット


 例 

   +1234
  0000 0001 0010 0011 0100 1100
   -1234
  0000 0001 0010 0011 0100 1101


1234は桁数が4で偶数なので、パック10進数の先端に0000を付加する必要がある。

 関連項目 
 二進化十進表現
 アンパック10進数（ゾーン10進数）

category:コンピュータのデータ
Category:コンピュータの算術
Category:数の表現