!--a11y-->

16 進項目 ( 型 X) で、個別ビットの設定または読込を行えます。
ビットを個別に設定するには、以下の命令を使用します。
SET BIT <n> OF <f> [TO <b>].
この命令により、項目 <f> の <n> 桁目のビットが 1 ( または項目<b> の値) に設定されます。システムで項目 <n> を正の整数として解釈可能でなければなりません。項目 <f> のデータ型は X にする必要があります。項目 <b> の値は 0 または 1 でなければなりません。ビットが設定されると、SY-SUBRC は 0 に設定されます。<n> が <f> の長さを上回っている場合、SY-SUBRC はゼロ以外になります。<n> または <b> に無効な値が格納されている場合、実行時エラーが発生します。

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.
3 文字の 16 進項目 HEX で第 2 バイトの各ビットが ‘10110101’ に設定され、一覧出力は以下のようになります。
00B500
第 2 バイトの 10 進値は 181 です。
ビットを個別に読み込むには、以下の命令を使用します。
GET BIT <n> OF <f> INTO <b>.
この命令により、項目 <f> の <n> 桁目のビットが項目<b> に読み込まれます。システムで項目 <n> を正の整数として解釈可能でなければなりません。項目 <f> のデータ型は X にする必要があります。ビットが読み込まれると、SY-SUBRC は 0 に設定されます。<n> が <f> の長さを上回っている場合、SY-SUBRC はゼロ以外になり、<b> はゼロに設定されます。<n> に無効な値が格納されている場合、実行時エラーが発生します。

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.
この場合、1 文字の 16 進項目 HEX ( 値 ‘B5’) の 8 ビットが読み込まれ、以下のように表示されます。
10110101
