目的
指定された記憶域を符号なし整数として解釈し、その整数の値を返します。
構文
POSINT(expression[,position[,length]])
パラメーター
expression は、スカラー式または連結記憶域への参照です。expression に配列、構造体、または名前付き定数を指定することはできません。position は、フィールドの最初のビット位置を指定する正の整数値です。length は、フィールドの長さを指定する 0 から 32 の範囲の正の整数値です。
例
DCL A BIT(32);
A = '12345678'B4;
PUT SKIP LIST(POSINT(A,5,4));
END TEST;
説明
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 が符号付き整数を返す以外は同じです。
この関数の結果は、使用しているハードウェアのネイティブのバイト順に依存します。そのため、異なるプラットフォームで同じように使用できるとは限りません。