ABAP Keyword Documentation → ABAP - Reference → Processing Internal Data → Character String and Byte String Processing → Statements for Character String and Byte String Processing
GET BIT
Other versions: 7.31 | 7.40 | 7.54
Syntax
GET BIT bitpos OF byte_string INTO val.
Effect
This statement reads the bit at the bit position bitpos
of the data object byte_string
and assigns its value to the variable val
.
The data object byte_string
must be byte-type. bitpos
is a
numerical expression
position of operand type i
. The value of bitpos
must be greater than 0, otherwise exceptions that cannot be handled will occur. 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 read and sy-subrc
is set to 4.
System Fields
sy-subrc | Meaning |
---|---|
0 | The value of the bit at position bitpos of byte_string was placed in the result field val . |
4 | The value of bitpos is greater than the number of bits in byte_string and no bit was read |
Notes
-
If
byte_string
is of the deep data typexstring
, one bit is read from the referenced byte string and not from the reference. -
In non-Unicode programs, you can also use character-type data objects for
byte_string
-
The reading of single bits is especially intended for evaluating the results of bit expressions.
Example
The hexadecimal value "1B" is assigned to the data object hex
and its bits
are read from front to back. The output is "00011011", which corresponds to the binary display of decimal 27 or hexadecimal "1B".
DATA: len TYPE i,
res TYPE i,
hex TYPE xstring.
hex = '1B'.
len = XSTRLEN( hex ) * 8.
WHILE sy-index <= len.
GET BIT sy-index OF hex INTO res.
WRITE (1) res NO-GAP.
ENDWHILE.
Exceptions
Non-Catchable Exceptions
-
Cause:
n
is smaller than or equal to0
.
Runtime Error:BIT_OFFSET_NOT_POSITIVE