bit_exp - Bit Expressions
Short Reference
ABAP Syntax ... [ BIT-NOT ] operand1
[{ BIT-AND|BIT-OR|BIT-XOR } [
BIT-NOT ] operand2
[{ BIT-AND|BIT-OR|BIT-XOR } [
BIT-NOT ] operand3
... ]] ... .
What does it do? A bit expression formulates a binary calculation. The
operands must be byte-like (type x or xstring ). The result
of a bit expression is a byte chain in the
calculation length assigned to the bit expression. In a bit
expression bit_exp , an operand operand1 can be joined with
one or more operands operand2 , operand3 , and so on using
bit operators BIT-AND , BIT-OR ,
or BIT-XOR ; Brackets are possible. Bit
expressions can occur in the reader positions of
certain statements , in particular on
the right side of an assignment with the
assignment operator = .
The operand positions operand are
general expression positions ,
which means byte-like data objects,
functional methods with byte-like return codes, or bracketed bit
expressions can be specified. The bit operators BIT-AND ,
BIT-OR , and BIT-XOR join two adjacent operands. When the
expression is evaluated, a byte-like value is calculated and joined with
the next adjacent operand. The priority of the join depends on the
operators that are used; if use functional methods are used, the same
applies as described for arithmetic expressions
.
The bit operator BIT-NOT can be
specified one or more times before an operand to negate the value of the
operand. If BIT-NOT is specified an even number of times, the
operand remains unchanged. An odd number of uses negates the operand.
If functional methods are
specified as operands, they are listed from left to right and from
inside to outside before the remainder of the expression is evaluated.
The return values are buffered to be used in the corresponding operand
positions.
Example ABAP Coding Bit sequences are an efficient way of mapping set
operations. If a set contains n elements, the existence of an element i
in n can be represented by a 1 at the position of i in a byte-like
field. The statement SET BIT . among others,
can be used to add an element to the set. The operators BIT-AND ,
BIT-OR , and BIT-XOR can then be used to calculate the
intersection, the union, and the symmetric difference of different sets.
In the following example, the attributes of person groups are mapped
in the fields p1 , p2 , p3 of the type x . The
bit operator BIT-AND is then used to determine which attributes
are shared by all people. The result shows that only the eighth
attribute is shared.
DATA:
p1 TYPE x LENGTH 1 VALUE '5B', "01011011
p2 TYPE x LENGTH 1 VALUE '13', "00010011
p3 TYPE x LENGTH 1 VALUE 'A5'. "10100101
DATA(res) = p1 BIT-AND p2 BIT-AND p3. "00000001
Runtime Exceptions Non-catchable Exceptions
Reason for error: An operand or the result field is not of type x .
Runtime error: BITS_WRONG_TYPE
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved