ABAP Keyword Documentation → ABAP - Reference → Program Flow → Expressions and Functions for Logical Expressions → log_exp - Logical Expressions → log_exp - Comparisons → log_exp - Relational Operators

# log_exp - Relational Operators for Bit Patterns

The table below shows the relational operators for comparisons of operands (single operands or
bit expressions). with bit patterns in byte-like operands. The data type of the right operand `operand2`

must be byte-like
(`x`

or `xstring`

). It contains the bit pattern to
which the left operand `operand1`

is compared. If `operand1`

is shorter than `operand2`

, hexadecimal zeroes are appended to the right of `operand1`

to lengthen it appropriately. However, no conversion takes place.

In Unicode programs, the data type of `operand1`

must also be byte-like
(`x`

or `xstring`

). Outside of Unicode programs, `operand1`

can be of any elementary data type or have a
flat structure.

|Operator|Meaning|
|----|----|
|`O`

|Ones: True if the bits that are 1 in `operand2`

, are also 1 in `operand1`

.If `operand2`

contains only zeroes, the logical expression is always true.|
|`Z`

|Zeros: True, if the bits that are 1 in `operand2`

are 0 in `operand1`

.If `operand2`

contains only zeroes, the logical expression is always true.|
|`M`

|Mixed: True, if of the bits that are 1 in `operand2`

, at least one is 1and one is 0 in `operand1`

. If `operand2`

contains only zeroes, the logical expression is always false.|

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

Note

For the result of the comparisons, it is irrelevant whether the bits that are 0 in `operand2`

, are 1 or 0 in `operand1`

.

Example

The logical expression in the `IF`

statement is false, because before the comparison,
`hex1`

is lengthened to the right with 00. If the content of `hex2`

was 111100, then the comparison would be true.

```
DATA: hex1 TYPE xstring,
hex2 TYPE xstring.
hex1 = 'FFFF'.
hex2 = '111111'.
IF hex1 O hex2.
...
ENDIF.
```