ABAP Keyword Documentation → ABAP - Reference → Program Flow Logic → Expressions and Functions for Conditions → log_exp - Logical Expressions → rel_exp - Comparison Expressions → rel_exp - Relational Operators
rel_exp - Relational Operators for Bit Patterns
The table below shows the relational operators for comparisons of operands (single data objects or return values or
bit expressions) with bit patterns in byte-like operands in
comparison expressions. The data type of the right operand operand2
must be byte-like
(x
or xstring
). It contains the bit pattern with
which the left operand operand1
is compared. If operand1
is shorter than operand2
, hexadecimal zeroes are added to the right of operand1
(in accordance with the
comparison rules) to lengthen it appropriately. No conversion takes place. The data type of operand1
must also be byte-like
(x
or xstring
).
|operator|Meaning|
|----|----|
|O
|Ones: True if the bits that are 1 in operand2
, are also 1 in operand1
.If operand2
contains only zeroes, the relational expression is always true.|
|Z
|Zeroes: True, if the bits that are 1 in operand2
are 0 in operand1
.If operand2
contains only zeroes, the relational 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 relational expression is always false.|
Other versions: 7.31 | 7.40 | 7.54
Notes
- For the result of the comparisons, it is irrelevant whether the bits that are 0 in
operand2
, are 1 or 0 inoperand1
.
- In obsolete
non-Unicode programs,
operand1
can have any elementary data type or be a flat structure.
Example
The logical expression in the IF
statement is false, because, before the
comparison, 00 is added to the right of hex1
. If the content of hex2
were 111100, the comparison would be true.
DATA: hex1 TYPE xstring,
hex2 TYPE xstring.
hex1 = 'FFFF'.
hex2 = '111111'.
IF hex1 O hex2.
...
ENDIF.