SET BIT bitpos OF byte_string [TO val].
This statement sets the bit in bit position
bitpos of the variable
byte_string to 1 or, if specified, to the value of data object
val. The other bits in
byte_string remain unchanged.
The data object
byte_string must be byte-like, whereas
positions of operand type
i. The value of
must be greater than 0 and
val must be either 0 or 1. Otherwise an exception
that cannot be handled is raised. The bit positions in
byte_string are counted
from the beginning of the data object. If the value of
bitpos is greater
than the number of bits in
byte_string, no bit is replaced and
sy-subrc is set to 4.
|0||A bit in data object
|4||The value of
byte_stringhas the deep type
xstring, a bit is set in the referenced byte string, not in the reference.
Character-like data objects are also allowed for
byte_stringin non-Unicode programs.
- Setting single bits is especially suited to preparing operators in bit expressions.
The predefined function
bit_setcan also be used to set an individual bit.
In the data object
hex with eight bits, the bit is set to the value 1 at
the position determined by the loop counter
sy-index, with all other bits set to 0. The output is "80 40 20 10 08 04 02 01".
DATA hex TYPE x LENGTH 1. DO 8 TIMES. CLEAR hex. SET BIT sy-index OF hex. WRITE hex. ENDDO.
Cause: The bit position is greater than or equal to
Cause: The value of
valis not equal to