コンテンツにスキップ

パック10進数

出典: フリー百科事典『ウィキペディア(Wikipedia)』

2023年2月2日 (木) 23:17; 299b69a (会話 | 投稿記録) による版(日時は個人設定で未設定ならUTC

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

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

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を付加する必要がある。

関連項目

[編集]