Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

SET BIT AND GET BIT

Former Member
0 Likes
1,293

Hi,

Good day gurus,

Can any one expalin the usege of Set Bit and Get Bit.

Where can we use these statements in ABAP.

regards,

kk

1 REPLY 1
Read only

Former Member
0 Likes
644

hi,

Setting and Reading Bits

In a hexadecimal field (type x), you can set or read individual bits.

Setting Bits

To set an individual bit, use the statement

SET BIT n OF f [TO b].

This statement sets the bit at position n of the field f to 1, or to the value of field b. The system must be able to interpret bit n as a positive whole number. The field f must have data type x. The field b must contain the value 0 or 1. If the bit is set, sy-subrc is set to 0. If n is greater than the length of f, sy-subrc is not equal to zero. If n or b contain invalid values, a runtime error occurs.

DATA hex(3) TYPE x.

SET BIT: 09 OF hex TO 1,

10 OF hex TO 0,

11 OF hex TO 1,

12 OF hex TO 1,

13 OF hex TO 0,

14 OF hex TO 1,

15 OF hex TO 0,

16 OF hex TO 1.

WRITE hex.

The bits of the second byte in the three-character hexadecimal field hex are set to ‘10110101’, and the list output is as follows:

00B500

The decimal value of the second byte is 181.

Reading Bits

To read an individual bit, use the statement

GET BIT n OF f INTO b.

This statement reads the bit at position n of the field f into field b .The system must be able to interpret bit n as a positive whole number. The field f must have data type x. If the bit is read, sy-subrc is set to 0. If n is greater than the length of f, sy-subrc is not equal to zero and b is set to zero. If n contains an invalid value, a runtime error occurs.

DATA: hex(1) TYPE x VALUE 'B5',

b(1) TYPE n.

DO 8 TIMES.

GET BIT sy-index OF hex INTO b.

WRITE b NO-GAP.

ENDDO.

Here, the eight buts of the single-character hexadecimal field hex (value ‘B5’) are read and displayed as follows:

10110101

hope this is useful.

regards,

sreelakshmi.