ビット文字列演算子とそれが表す演算は次のとおりです。
演算子 | 演算 |
---|---|
& | 論理積 |
| | 論理和 |
^ | 否定 (補集合) |
Open PL/I では、チルダ (~) をキャレット (^) に相当する演算子記号として使用できます。
さらに、感嘆符 (!) を縦棒 (|) に相当する演算子記号として使用できます。
ビット文字列演算子にはビット文字列作用対象が必要です。その他のデータ型の作用対象は、BIT 組み込み関数を使用してビット文字列値に変換する必要があります。
中置演算子の & および | の演算では、作用対象の長さが異なる場合、短い方の値が長い方の値の長さまで実質的に拡張されます。これは、短い方の値の右端にゼロ ビットを付加することで行われます。
^ の結果は、ビットが作用対象のビットの補数となるビット文字列です。つまり、各ビットについて、0 ビットは 1 ビットとなり、1 ビットは 0 ビットとなります。
& および | の結果は、大きい方の作用対象と同じ長さのビット文字列です。結果の各ビットは次のようになります。
第 1 作用対象 | 第 2 作用対象 | & | | |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 |
たとえば、X が '01011'B で Y が '11001'B の場合、^X の結果は '10100'B、X&Y の結果は '01001'B、X | Y の結果は '11011'B となります。X&'11'B の結果は '01000'B です。