BITVAL - ビット列を整数として評価

BITVAL 関数は、文字列内のビット列を評価します。ビット列は文字列内の任意のビットグループであり、バイトおよびワード境界をまたがることができます。この関数は、文字列内のビットのサブセットを整数値として評価します。

ビット数に応じて、次の値が返されます。

  • ビット数が 1 未満の場合、返される値は 0 (ゼロ) です。
  • ビット数が 1 から 31 までの場合 (推奨される範囲)、返される値は 0 (ゼロ)、または指定したビット数 (合計が 32 ビットになるまで上位桁に 0 (ゼロ) を加えたビット数) を表す正の数です。
  • ビット数が 32 の場合、返される値は、指定した 32 ビットを表す正の値、0 (ゼロ)、または負の 2 の補数値です。
  • ビット数が 33 以上の場合、返される値は、指定したビット数の右端 32 ビットを表す正の値、0 (ゼロ)、または負の 2 の補数値です。

ビット列を評価

BITVAL(source_string, startbit, number, output)

説明

source_string

文字

評価する文字列です。文字列は一重引用符 (') で囲みます。文字列を含むフィールドまたは変数を指定することもできます。

startbit

整数

ビット列の左から数えて 1 ビット目の数値です。この引数が 0 (ゼロ) 以下の場合、0 (ゼロ) が返されます。

number

整数

評価対象となるビット列内のビット数です。この引数が 0 (ゼロ) 以下の場合、0 (ゼロ) が返されます。

output

整数

結果を格納するフィールド名、または出力フォーマットです。フォーマットは一重引用符 (') で囲みます。

ビット列を評価

BITVAL 関数は、LAST_NAME の 12 ビット目から 20 ビット目までを評価し、結果を I5 フォーマットのフィールドに格納します。

TABLE FILE EMPLOYEE
PRINT LAST_NAME AND COMPUTE
STRING_VAL/I5 = BITVAL(LAST_NAME, 12, 9, 'I5');
WHERE DEPARTMENT EQ 'MIS';
END

出力結果は次のとおりです。

LAST_NAME        STRING_VAL
---------        ----------
SMITH                   332
JONES                   365
MCCOY                    60
BLACKWOOD               316
GREENSPAN               412
CROSS                   413