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