形象定数
形象定数 *BLANK/*BLANKS、*ZERO/*ZEROS、*HIVAL、*LOVAL、*NULL、
*ALL'x..'、*ALLG'oK1K2i'、*ALLU'XxxxYyyy'、*ALLX'x1..'、および
*ON/*OFF は、形象定数の暗黙の長さおよび小数点以下の桁数は
関連したフィールドの長さおよび小数点以下の桁数と同じになるので、
長さなしで指定することができる暗黙のリテラルです。(例外につい
ては、次の項の 形象定数に関する規則を参照してください。)
形象定数は演算仕様書の演算項目 1 および演算項目 2 の中で指定することが
できます。 以下は、形象定数の予約語および暗黙の値を示しています。
- 予約語
- 暗黙の値
- *BLANK/*BLANKS
- すべてブランク。文字、図形、または UCS-2 フィールドの場合にだけ有効です。値は、文字の場合は ' ' (ブランク) または X'40'、図形の
場合は X'4040'、UCS-2 の場合は X'0020' です。
- *ZERO/*ZEROS
- 文字/数値フィールド: すべて
ゼロ。 値は '0' または X'F0' です。数値浮動フィールドの
場合: 値は '0 E0'。
- *HIVAL
- 文字、図形、または UCS-2 フィールド: システムで最高の照合文字 (16
進 FF)。数値フィールド: 対応するフィールドに可能な
最大値 (適用可能な場合は正符号付き)。 浮動フィールドの場合: *HIVAL (4 バイト浮動の場合)
= 3.402 823 5E38 (/x'7F7FFFFF'/) *HIVAL (8 バイト浮動の場合)
= 1.797 693 134 862 315 E308 (/x'7FEFFFFFFFFFFFFF'/) 日付、時刻、およびタイム・スタンプ・フィールド: 日付、時刻、
およびタイム・スタンプ・データの *HIVAL 値について
は、日付データ・タイプ、時刻データ・タイプ、および タイム・スタンプ・データ・タイプを参照してください。
- *LOVAL
- 文字、図形、または UCS-2 フィールド: システムで最低の照合文字 (16
進ゼロ)。数値フィールド: 可能な最小値 (適用可能な
場合は負符号付き)。
浮動フィールドの場合: *LOVAL (4 バイト浮動の場合) = -3.402 823 5E38 (/x'FF7FFFFF'/)
*LOVAL (8 バイト浮動の場合) = -1.797 693 134 862 315 E308 (/x'FFEFFFFFFFFFFFFF'/) 日付、時刻、およびタイム・スタンプ・フィールド: 日付、時刻、
およびタイム・スタンプ・データの *LOVAL 値については、日付データ・タイプ、時刻データ・タイプ、および タイム・スタンプ・データ・タイプ を参照してください。
- *ALL'x..'
- 文字/数値フィールド: 文字ストリング x.. は関連したフィールドの長さと等し
くなるまで循環して反復されます。フィールドが数値フィールドの場合には、ストリング内の
すべての文字が数値 (0 から 9) でなければなりません。 *ALL'x..' が数値定数として使用
された場合には、 符号または小数点を指定することはできません。
注:
浮動形式の数値フィールドで、*ALL'x..' を使用することはできません。
注:
数値整数または符号なしフィールドの場合には、その値が対応するフィール
ドに可能な最大値より大きくなることはありません。 たとえば、対応するフィー
ルドが 5 桁の整数フィールドである場合には、*ALL'95' は値 9595 を表します。
95959 は、5 桁の符号付き整数に可能な最大値より大きくなるからです。
- *ALLG'oK1K2i'
- 図形フィールド: 図形ストリング K1K2 は、
関連したフィールドの長さと等しくなるまで、周期的に反復されます。
- *ALLU'XxxxYyyy'
- UCS-2 フィールド: 形式 *ALLU'XxxxYyyy' の
形象定数は、形式が 'XxxxYyyyXxxxYyyy...' で、長さ
が *ALLU'XxxxYyyy' 定数に関連したフィールドの長さによって
決まる、リテラルを示します。この定数内の
各 2 バイト文字は、4 桁の 16 進数字によって表されます。
たとえば、*ALLU'0041' は UCS-2 'A' の反復ストリングを
表します。
- *ALLX'x1..'
- 文字フィールド: 16 進数リテラル X'x1..' は関連したフィールドの長さと等し
くなるまで循環して反復されます。
- *NULL
- ヌル値は基底ポインター、プロシージャー・ポインター、またはオブジェクトに有効です。
- *ON/*OFF
- *ON はすべて 1 ('1' または X'F1') です。*OFF は
すべてゼロ ('0' または X'F0') です。どちらも有効なのは、文
字フィールドの場合だけです。
形象定数に関する規則
形象定数の使用にあたっては、以下の規則に留意してください。
MOVEA の結果は上記の MOVE の例の結果とは異なることに注意してください。
- 代替照合順序の指定がある場合には、形象定数が該当する長さに設定/リセットされた後で、通常の照合順序を変更することができます。
- 移動命令の MOVE および MOVEL では、形象定数の *ALL'X..'、
*ALLG'oK1K2i'、
および *ALLX'x1..' を転送するときは同じ結果になります。ストリングは、
関連したフィールドの長さとストリングの長さが同じになるまで
、文字単位で (左から順に) 周期的に反復されます。
- 演算項目の一方が形象定数ではない限り、形象定数は比較命令の中で使用す
ることができます。
- 形象定数 *BLANK/*BLANKS は、MOVE 命令ではゼロとして数値フィールドへ
転送されます。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.