ABAP Keyword Documentation → ABAP - Reference → Processing Internal Data → Character String and Byte String Processing → Expressions and Functions for Byte String Processing → bit_exp - Bit Expressions

# bit_exp - Bit Operators

Bit operators work with the individual bits of the operands. The
calculation length
is specified by the operands involved. Linking two operands with `BIT-AND`

,
`BIT-OR`

, and `BIT-XOR`

has a result of this length,
as each individual bit is set according to the table from the bits of the corresponding positions in the operands. `BIT-NOT`

changes the bits of the operands to its right as shown in the table.

x | y | BIT-NOT x | x BIT-AND y | x BIT-XOR y | x BIT-OR y |
---|---|---|---|---|---|

0 | 0 | 1 | 0 | 0 | 0 |

0 | 1 | 1 | 0 | 1 | 1 |

1 | 0 | 0 | 0 | 1 | 1 |

1 | 1 | 0 | 1 | 0 | 1 |

The order of the columns in the table reflects the priority of the bit operators. The operator `BIT-NOT`

has the highest, and `BIT-OR`

the lowest priority. Within one
level of parentheses, the results of operators with
higher priority are formed before the results with operators of a lower priority. For consecutive operators
of the same priority, the evaluation is carried out from left to right, except for the operator `BIT-NOT`

, which is executed from right to left.

Other versions:
7.31 | **7.40** | 7.54

Example

Uses various bit operators

```
TYPES output TYPE TABLE OF xstring WITH EMPTY KEY.
DATA hex1 TYPE xstring VALUE '0011'.
DATA hex2 TYPE xstring VALUE '0101'.
cl_demo_output=>display( VALUE output(
( hex1 BIT-AND hex2 )
( hex1 BIT-OR hex2 )
( hex1 BIT-XOR hex2 ) ) ).
```

The displayed result is:

0111

0110