POSINT 関数

目的

指定された記憶域を符号なし整数として解釈し、その整数の値を返します。

構文

POSINT(expression[,position[,length]])

パラメーター

expression は、スカラー式または連結記憶域への参照です。expression に配列、構造体、または名前付き定数を指定することはできません。position は、フィールドの最初のビット位置を指定する正の整数値です。length は、フィールドの長さを指定する 0 から 32 の範囲の正の整数値です。

説明

POSINT 関数は、指定された記憶域を符号なし整数として解釈し、その整数の値を返します。POSINT 関数では変換は実行されないため、返される値は、指定した記憶域に格納されている変数のデータ型に依存します。

position を指定する場合、最小値は 1 で、最大値は、expression で指定した記憶域のビット長です。position を省略した場合のデフォルト値は 1 です。

length を指定する場合、最小値は 0 で、最大値は、expression で指定した記憶域のビット長から position の値を引いた値です。length を省略した場合のデフォルト値は、position で指定したビットから expression で指定した記憶域の末尾までのビット数になります。

position および length を指定しない場合は、expression で参照される記憶域の長さが 32 ビットに制限されます。

POSINT は Fixed Bin(31) 型の値を返します。フィールドの長さがゼロの場合はゼロを返します。POSINT では符号なし整数が返されるため、返された値が大きすぎて Fixed Bin(31) に代入できない場合があります。このような処理の結果は不定となります。

POSINT と INT は、INT が符号付き整数を返す以外は同じです。

この関数の結果は、使用しているハードウェアのネイティブのバイト順に依存します。そのため、異なるプラットフォームで同じように使用できるとは限りません。

DCL A BIT(32);

   A = '12345678'B4;
   PUT SKIP LIST(POSINT(A,5,4));

END TEST;

制約事項

なし。