%BITAND (ビット単位の AND 演算)

%BITAND(expr:expr{:expr...})

%BITAND は、すべての引数のビットの論理積を、ビット単位で戻します。 つまり、引数内の対応するビットがすべてがオンの場合は、結果のビットはオンになり、 それ以外の場合は、結果のビットはオフになります。

この組み込み関数に対する引数は、文字でも数値でもかまいません。 数値の引数の場合は、引数が整数または符号なし数値ではないときには、引数はまず整数に変換されます。値が 8 バイトの整数に収まらない場合は、 数値のオーバーフロー例外が発行されます。

%BITAND は複数の引数を持つことができます。 引数はすべて、同じタイプ (文字または数値) である必要があります。結果のタイプは、引数のタイプと同じです。数値の引数の場合は、すべての引数 が符号なし数値であるときには、結果の数値は符号なし数値になり、それ以外の場合は、結果の数値は整数になります。

長さは、最大オペランドの長さになります。 引数の長さがさまざまである場合、 数値の引数については、左側にゼロのビットが埋め込まれます。文字の引数については、短い場合、右側に 1 のビットが埋め込まれます。

%BITAND は任意の式でコーディングすることができます。 また、すべての引数がコンパイル時に既知の場合は、 ファイルまたは定義仕様書キーワードに対する引数としてコーディングすることもできます。この組み込み関数のすべての引数が 16 進数リテラルである場合、 コンパイラーは 16 進数リテラルの定数結合された結果を作成します。

%BITAND の使用についての実例は、図 1図 2、および図 3 を参照してください。

詳細については、ビット操作または 組み込み関数を参照してください。