|
≫ |
|
|
|
HP OpenVMS DCL ディクショナリ
F$CVUI
文字データからビット・フィールドを取り出し,その結果を符号なし値として整数に変換します。
形式
F$CVUI (開始ビット, ビット数, 文字列)
戻り値
取り出したビット・フィールドを符号なし値として変換した整数
引数
開始ビット取り出される最初のビットのオフセットを指定します。文字列の下位(右端)ビットは,オフセットでの位置番号 0 です。オフセットは整数式で指定します。
負の値を持つ式や,文字列に含まれるビット数を越える値を持つ式を指定した場合, DCL は INVRANGE というエラー・メッセージを表示します。
ビット数整数値に変換するために取り出されるビット文字列の長さを指定します。ここで指定する値は,文字列引数のビット数以下でなければなりません。
負の値を持つ式を指定した場合や,ビット位置オフセットに加算すると誤った値になる式を指定した場合は, DCL は INVRANGE というエラー・メッセージを表示します。
文字列編集する文字列を指定します。
例
#1 |
$ A[0,32] = %X2B
$ SHOW SYMBOL A
A = "+"
$ X = F$CVUI(0,4,A)
$ SHOW SYMBOL X
X = 11 Hex = 0000000B Octal = 00000000013
|
この例では,算術オーバーレイを使用して,シンボル A の 32 ビットすべてに 16 進数の 2B を割り当てています。シンボル A は未定義状態のため,オーバレイが実行されたあと,このシンボルには,文字列値が割り当てられます。 ( シンボルが未定義の場合には,算術オーバレイの結果として文字列値が割り当てられます。シンボルがすでに定義されていた場合には,オーバレイが実行されたあと,そのシンボルは同じデータ・タイプのままです。) 16 進数の 2B は,ASCII の "+" に対応します。
次に F$CVUI 関数がシンボル A から下位 4 ビットを取り出します。下位4ビットには,16 進数値 B の 2進表現が含まれています。これらのビットは,符号なし値として整数に変換されます。変換後の 11 という値が,シンボルX に割り当てられます。
|