パック 10 進数形式

パック 10 進数形式は、記憶域の各バイト (最下位バイトは除く) に 2 つの 10 進を入れることができることを意味します。 最下位バイトには、その左端部分に 1 桁の数字が入り、右端部分には符号 (正ま たは負) が入ります。 使用される標準の符号は、正数には 16 進の F および負数には 16 進の D です。 パック 10 進数形式は、次のようになります。

図 88. パック 10 進数形式
REQTEXT

最下位バイトの符号部分は、数字部分に表された数値が正と負のいずれである かを示します。 図 90 は、10 進 21544 がパック 10 進数形式 でどのようになるかを示しています。

パック 10 進数フィールドの桁数の長さの判別

パック 10 進数フィールドの桁数による長さを見付けるためには、次の式を使用 してください。

   桁数 = 2n - 1
   ここで n = 使用するパック形式の入力レコードの桁数。

この式によって、パック 10 進数形式で表現できる最大桁数が得られます。上限 は 63 です。

パック・フィールドの長さは最高 32 バイトとすることができます。 表 26 は、最高 63 桁の長さのゾーン 10 進数フィールドと同等の パック 10 進数フィールドを示しています。

表 26. 最高 63 桁の長さのゾーン 10 進数フィールドと同等のパック 10 進数フィールド
ゾーン 10 進数
の長さ (桁)
パック 10 進数フィールドで
使用されるバイト数
1 1
2、3 2
4、5 3

·
·
·

·
·
·
28、29 15
30、31 16

·
·
·

·
·
·
60、61 31
62、63 32

たとえば、パック 10 進数形式で読み取られた入力フィールドの長さが (入力ま たは定義仕様書に指定されたとおりの) 5 バイトであったとします。 このフィールド の桁数は 2(5) - 1 つまり 9 と等しくなります。したがって、このフィールドが 演算仕様書で使用される時には、結果のフィールドは 9 桁の長さがなければなりません。 定義仕様書の PACKEVENキーワードを使用して、桁数では なく、開始位置および終了位置を使用してパック・サブフィールドを指定するときに必要な 2 つの使用可能なサイズのいずれかを指定することができます。