BOOL 関数

目的

2 つのビット文字列引数に対するブール演算を実行します。

構文

BOOL(x,y,z)

パラメーター

x および y はビット文字列引数、z はビット文字列です。

説明

BOOL 関数は、2 つのビット文字列引数 x および y に対するブール演算を実行し、その結果を長い方の引数と同じ長さのビット文字列として返します。

z は長さが 4 ビットのビット文字列でなければなりません。それ以外の場合は Bit (4) に変換されます。

x および y が null 文字列の場合、結果は null 文字列になります。xy の長さが異なる場合は、短い方の文字列が xy の長さが同じになるまで右側にゼロ ビットを付加して拡張されます。z 内のビット値は、左から右の順に m1、m2、m3、m4 となります。

結果の I 番目のビット値は、x および yI 番目のビット値に応じて、次の表に示すように m1、m2、m3、m4 のいずれかの値に設定されます。

X(I) Y(I) RESULT(I)
0 0 m1
0 1 m2
1 0 m3
1 1 m4

つまり、ビット文字列 z は何らかのブール関数の結果を定義します。たとえば、関数 OR を定義する場合、ビット文字列 z の値は '0111'b となります。関数 AND を定義する場合は、ビット文字列 z は '0001'b です。結果は、z で記述された関数の規則を文字列 x および文字列 y の各ビット位置に適用することで得られる、x および y と同じ長さのビット文字列になります。

BOOL('1100110'b,'0101'b,'0110'b)  /*returns '1001110'b */

この例では、2 番目の引数が '0101000'b に拡張されます。ビット 1 については、x が 1 で y が 0 です。したがって、結果のビットの値は m3 で 1 となります。ビット 2 については、x が 1 で y が 1 であるため、結果のビットの値は m4 で 0 となります。ビット 3 の比較では、0 と 0 であるため、値は m1 で 0 となります。

制約事項

なし。