Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


数値データの形式

数値データに使用できる形式には幾つかあります。

外部 10 進数 (DISPLAY および NATIONAL) 項目

カテゴリー数値データ項目で USAGE DISPLAY が (コーディングされているため、あるいはデフォルトにより) 有効である場合、ストレージのそれぞれの位置 (バイト) は 1 つの 10 進数字を含みます。 項目は表示可能な形式で保管されます。USAGE DISPLAY を持つ外部 10 進数項目は、ゾーン 10 進数 データ項目と呼びます。

カテゴリー数値データ項目で USAGE NATIONAL が有効である場合、それぞれの 10 進数字ごとに 2 バイトのストレージが必要です。 項目は UTF-16 形式で保管されます。USAGE NATIONAL を持つ外部 10 進数項目は、国別 10 進数 データ項目と呼びます。

国別 10 進数データ項目は、符号付きの場合には、SIGN SEPARATE 節が有効になっている必要があります。 ゾーン 10 進数項目のその他の規則すべてが国別 10 進数項目に適用されます。 国別 10 進数項目は、他のカテゴリー数値データ項目を使用できる場所ならどこででも使用できます。

外部 10 進数 (ゾーン 10 進数と国別 10 進数の両方) データ項目は 、プログラムとファイル、端末、またはプリンターとの間で数値をやり取りすることを主な目的としています。 外部 10 進数項目は、算術処理で、オペランドおよび受け取り側として使用することもできます。ただし、プログラムで多数の算術計算を集中的に実行し、効率を優先させるのであれば、算術計算で使用するデータ項目には、COBOL の計算数値タイプを使用した方がよい場合もあります。

外部浮動小数点 (DISPLAY および NATIONAL) 項目

浮動小数点データ項目で USAGE DISPLAY が (コーディングされているため、あるいはデフォルトにより) 有効である場合、それぞれの PICTURE 文字位置 (使用されている場合、暗黙の小数点である v を除く) は 1 バイトのストレージを占有します。 項目は表示可能な形式で保管されます。USAGE DISPLAY を持つ外部浮動小数点項目は、USAGE NATIONAL を持つ外部浮動小数点項目と区別する必要があるとき、本書では表示浮動小数点 データ項目と呼びます。

以下の例では、Compute-Result が暗黙的に表示浮動小数点項目として定義されています。

05  Compute-Result  Pic -9v9(9)E-99.

負符号 (-) は、仮数および指数が必ず負の数値でなければならないことを意味するものではありません。 負符号は、数値が表示されるときに、正数であれば符号がブランクとなり、負数であれば符号が負符号となることを意味しています。正符号 (+) をコーディングすると、符号は、正数であれば正符号となり、負数であれば負符号となります。

浮動小数点データ項目で USAGE NATIONAL が有効である場合、それぞれの PICTURE 文字位置 (使用されている場合、v を除く) は 2 バイトのストレージを占有します。 項目は国別文字 (UTF-16) として保管されます。USAGE NATIONAL を持つ外部浮動小数点項目は、 国別浮動小数点 データ項目と呼びます。

表示浮動小数点項目の既存の規則は、国別浮動小数点項目に適用されます。

以下の例では、Compute-Result-N は国別浮動小数点項目です。

05  Compute-Result-N  Pic -9v9(9)E-99  Usage National.

Compute-Result-N が表示される場合、Compute-Result について上述したように符号が表示されますが、国別文字で表示されます。代わりに Compute-Result-N を EBCDIC 文字で表示するには、それをコンソールに送ってください。

Display Compute-Result-N Upon Console

外部浮動小数点項目に VALUE 節を使用することはできません。

浮動小数点数は、外部 10 進数と同様、(コンパイラーによって) 数値の内部表現に変換しなければ、算術演算で使用することはできません。デフォルト・オプションの ARITH (COMPAT) を使用してコンパイルした場合、外部浮動小数点数は長精度 (64 ビット) の浮動小数点形式に変換されます。ただし、ARITH (EXTEND) を使用してコンパイルすれば、外部浮動小数点数は拡張精度 (128 ビット) の浮動小数点形式に変換されます。

2 進数 (COMP) 項目

BINARYCOMP、および COMP-4 は同義語です。 2 進数形式の数値は、2、4、または 8 バイトのストレージを占めます。PICTURE 節で項目が符号付きであることが指定されている場合は、左端ビットが演算符号として使用されます。

2 進数は、付随する PICTURE 記述が 4 個以下の 10 進数字であれば 2 バイトを占め、5 個から 9 個の 10 進数字であれば 4 バイトを占め、10 個から 18 個の 10 進数字であれば 8 バイトを占めます。9 桁以上の 2 進数項目には、コンパイラーによる余分な処理が必要となります。それらを SIZE ERROR 条件についてテストしたり、丸めたりするのは、他のタイプに比べて非効率的です。

2 進数項目には、例えば、指標、添え字、スイッチ、および算術オペランドや結果を入れることができます。

2 進データ (BINARYCOMP、または COMP-4) の切り捨て方法を指定するには、TRUNC(STD|OPT|BIN) コンパイラー・オプションを使用してください。

固有 2 進数 (COMP-5) 項目

USAGE COMP-5 として宣言したデータ項目は、ストレージ内では 2 進データとして表されます。 しかし、これらは、USAGE COMP 項目とは異なり、PICTURE 節の 9 の数で暗黙指定される値に制限されるのではなく、固有 2 進数表現 (2、4、または 8 バイト) の容量までの大きさの値を含むことができます。

数値データを COMP-5 項目に移動または保管すると、COBOL PICTURE サイズ制限ではなく、2 進数フィールド・サイズで切り捨てが行われます。COMP-5 項目を参照する場合、演算では完全な 2 進数フィールド・サイズが使用されます。

したがって、COMP-5 は、データが COBOL PICTURE 節に適合しない可能性のある非 COBOL プログラムから生じる 2 進データ項目の場合に特に有用です。

次の表は、COMP-5 データ項目に指定可能な値の範囲を示しています。

表 1. COMP-5 データ項目の値の範囲
PICTURE ストレージ表現 数値
S9(1) から S9(4) 2 進数ハーフワード (2 バイト) -32768 から +32767
S9(5) から S9(9) 2 進数フルワード (4 バイト) -2,147,483,648 から +2,147,483,647
S9(10) から S9(18) 2 進数ダブルワード (8 バイト) -9,223,372,036,854,775,808 から +9,223,372,036,854,775,807
9(1) から 9(4) 2 進数ハーフワード (2 バイト) 0 から 65535
9(5) から 9(9) 2 進数フルワード (4 バイト) 0 から 4,294,967,295
9(10) から 9(18) 2 進数ダブルワード (8 バイト) 0 から 18,446,744,073,709,551,615

COMP-5 項目の PICTURE 節に、スケーリング (すなわち、小数部の桁数または暗黙の整数桁数) を指定することができます。その場合は、上記にリストされた最大容量とほぼ同じ大きさをスケーリングする必要があります。例えば、PICTURE S99V99 COMP-5 として記述したデータ項目は、ストレージ内では 2 進数ハーフワードとして表され、-327.68 から +327.67 までの範囲の値をサポートします。

VALUE 節のラージ・リテラル: COMP-5 項目の VALUE 節に指定されたリテラルは、一部の例外を除いて、固有 2 進数表現の容量までの大きさの値を含むことができます。 例外については、Enterprise COBOL 言語解説書を参照してください。

TRUNC コンパイラー・オプションの設定に関係なく、COMP-5 データ項目は、TRUNC(BIN) でコンパイルされたプログラムでは、2 進データのように動作します。

パック 10 進数 (COMP-3) 項目

PACKED-DECIMALCOMP-3 は同義語です。 パック 10 進数項目は、PICTURE 記述でコーディングされる 2 つの 10 進数字ごとに 1 バイトのストレージを占めます。ただし、右端のバイトだけが例外で、右端のバイトには 1 つの数字と符号が入ります。この形式が最も効率的に使用されるのは、PICTURE 記述で奇数の桁をコーディングして、左端のバイトが完全に使用されるようにするときです。パック 10 進数項目は、算術演算の目的では固定小数点数として扱われます。

内部浮動小数点 (COMP-1 および COMP-2) 項目

COMP-1 は短精度浮動小数点形式を指し、COMP-2 は長精度浮動小数点形式を指します。これらの形式は、それぞれ 4 バイトと 8 バイトのストレージを占めます。左端のビットには符号が入り、次の 7 つのビットには指数が入り、残りの 3 または 7 バイトには仮数が入ります。

COMP-1 および COMP-2 データ項目は、zSeries® の 16 進形式で保管されます。

関連参照
国別データのストレージ  
TRUNC  
データのクラスおよびカテゴリー (Enterprise COBOL 言語解説書)
SIGN 節 (Enterprise COBOL 言語解説書)
VALUE 節 (Enterprise COBOL 言語解説書)


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)