Four binary bitwise operators and one unary bitwise operator can be used in arithmetic expressions. They are represented by reserved words that must be preceded by a space and followed by a space.
| Binary Bitwise Operators | Meaning | 
|---|---|
| B-AND | The effect of performing a logical AND upon each positionally-matched pair of bits from the two operand data items: set the bit on if both bits are on. | 
| B-OR | The effect of performing a logical OR upon each positionally-matched pair of bits from the two operand data items: set the bit on if at least one of the bits are on. | 
| B-XOR | The effect of performing a logical XOR (exclusive OR) upon each positionally-matched pair of bits from the two operand data items: set the bit on if both bits differ. | 
| B-EXOR | The effect of performing a logical XOR (exclusive OR) upon each positionally-matched pair of bits from the two operand data items: set the bit on if both bits differ. | 
| Unary Bitwise Operator | Meaning | 
|---|---|
| B-NOT | The effect of performing a logical NOT upon the operand data item: sets each 'on' bit off, and each 'off' bit on. | 
B-XOR and B-EXOR are equivalent.
These operators can only be used in any arithmetic expressions with COMP-5, COMP-X or numeric literal operands. B-NOT takes one operand. The rest take two operands. The result is as if the equivalent logical operator library routine were used on the operands and the result returned in a temporary data item the size of the largest item used. If the items differ in size then the smaller item is moved to a temporary data item of the same size as the larger item. If the operands are of mixed type (COMP-5, COMP-X) then the smaller operand is moved to a temporary item of the same type as the larger. For best performance use consistent data types.
Here is an example program:
data division.
working-storage section.
01 n1 pic 9(9).
 01 n2 pic xx comp-5.
 01 n3 pic xxxx comp-5.
 procedure division.
     move 2 to n2
     move 4 to n3
     compute n1 = n2 b-or n1        *> n1 = 6
     if n2 b-and n1 = n2
         display 'true'
     end-if
     compute n1 = b-not n2          *> n1 = 65533
     compute n1 = n2 b-xor n3 + 1   *> n1 = 7
     compute n1 = n2 b-and 2        *> n1 = 2