Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

データ変換

計算データ変換の組み込み関数
ストリングの長さの変換
算術値の精度の変換
モードの変換
その他のデータ属性の変換
ソースからターゲットへの変換規則
小数部分がある DECIMAL FIXED から小数部分がある BINARY FIXED への変換
算術データからビット・ストリングへの変換
算術データから文字への変換
変換エラー

この章では、計算データのデータ変換について説明します。 PL/I は、特定の属性セットを持つデータ項目が、 別の属性セットを持つデータ項目に割り当てられると、 データ変換を行います。 この章では、ソース は、変換されるデータ項目を意味し、ターゲット は、ソースを変換した属性を意味します。 この章では、データの変換について以下の事項を説明します。

章の最後にデータの変換の例が記載されています。

ロケーター・データのデータ変換は、ロケーターの変換で説明されています。

計算データ項目の値が変換されると、その内部表記、精度 (算術値の場合)、 モード (算術値の場合)、または長さ (ストリング値の場合) が変わることがあります。 下の表は、どのような場合にほかの属性に変換が行われるかをまとめたものです。

事例 ターゲットの属性
割り当て 代入記号の左側にある変数の属性
式のオペランド 式を計算するときの規則によって決まる
ストリームの入力 (GET ステートメント) 受け入れフィールドの属性
ストリームの出力 (PUT ステートメント) ストリームが編集ディレクティブであれば、フォーマット・リストによって決まり、 それ以外の場合は文字ストリング
PROCEDURE または ENTRY への引数 対応するパラメーターの属性
組み込み関数または疑似変数への引数 関数または疑似変数によって決まる
INITIAL 属性 初期設定される変数のほかの属性
RETURN ステートメントの式 PROCEDURE ステートメントで指定されている属性
DO ステートメントのオプション BY、TO、または REPEAT 制御変数の属性

次の場合は、文字値に変換されることがあります。

ステートメント オプション
DISPLAY  
レコード入出力 KEYFROMKEY
OPEN TITLE

次の場合は、BINARY 値に変換されることがあります。

ステートメント オプション/属性/参照
DECLARE、ALLOCATE、DEFAULT 長さ、サイズ、次元、境界、反復因数
DELAY ミリ秒
FORMAT (および GET や PUT 内のフォーマット項目) 反復因数、d、s、p
OPEN LINESIZE、PAGESIZE
I/O SKIP、LINE、IGNORE
ほとんどのステートメント 添え字

ソース・データ項目とターゲット・データ項目のすべての属性 (ストリングの長さは除く) が、 コンパイル時に指定されていなければなりません。 変換は以下の条件の 1 つを起こすことがあります。 CONVERSION、OVERFLOW、SIZE、または STRINGSIZE。 (条件を参照してください。)

定数は実行時だけでなくコンパイル時に変換されることもあります。 どの場合も、行われる変換はここで述べられているとおりです。

次に示す変換の説明において、

1 つの演算で変換が複数回必要になることがあります。 ただし、必ずしも複数回行われるとは限りません。 変換規則を理解するには、これらの演算を別々に考えることをお勧めします。例えば、次のようになります。

  dcl A fixed dec(3,2) init(1.23);
  dcl B fixed bin(15,5);
  B = A;

この例では、1.23 という 10 進数表記は、まず BINARY (11,7) に変換されて 1.0011101B となります。 次に、精度の変換が行われて、BINARY(15,5) の 1.00111B という値になります。

その他の変換例は、この章の終わりに示してあります。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)