Ansicht
Dokumentation
ABAPSET_BIT - SET BIT
Fill RESBD Structure from EBP Component Structure Fill RESBD Structure from EBP Component StructureDiese Dokumentation steht unter dem Copyright der SAP AG.
SET BIT
SET BIT bitpos OF byte_string $[TO val$].
Wirkung
Diese Anweisung setzt das Bit an der Bitposition bitpos der Variablen byte_string auf den Wert 1 oder, falls angegeben, auf den Wert des Datenobjekts val. Die anderen Bits in byte_string bleiben unverändert.
Das Datenobjekt byte_string muss byteartig sein, während bitpos und val
numerische
Ausdruckspositionen vom Operandentyp i sind. Der Wert von bitpos muss größer
als 0 und der Wert von val entweder 0 oder 1 sein, ansonsten kommt es zu unbehandelbaren Ausnahmen. Die Bitpositionen in byte_string werden beginnend mit dem
höchstwertigen
Bit (most significant bit, MSB) des Datenobjekts von links nach rechts gezählt. Wenn der
Wert von bitpos größer als die Anzahl von Bits in byte_string ist, wird keine Ersetzung vorgenommen und sy-subrc auf 4 gesetzt.
Systemfelder
sy-subrc | Bedeutung |
0 | Ein Bit des Datenobjekts byte_string wurde an der Position bitpos gesetzt. |
4 | Der Wert von bitpos ist größer als die Anzahl der Bits in byte_string und es wurde kein Bit gesetzt. |
Hinweise
- Wenn byte_string vom tiefen Typ xstring ist, wird ein Bit in der referierten Bytekette gesetzt, nicht in der Referenz.
- Das Setzen von einzelnen Bits ist insbesondere für die Vorbereitung von Operatoren in Bit-Ausdrücken vorgesehen.
- Für das Setzen eines einzelnen Bits kann auch die eingebaute Funktion bit-set verwendet werden.
- Das Zählen der Bits ab dem höchstwertigen Bit kann beim Arbeiten mit Komponenten, die ab dem
niedrigstwertigen Bit (least significant bit, LSB) zählen zu unerwarteten Ergebnissen führen.
Im 8 Bit langen Datenobjekt hex wird das Bit an den durch den Schleifenzähler sy-index bestimmten Bitpositionen auf den Wert 1 gesetzt, während alle anderen Bits 0 sind. Die Ausgabe ist "80 40 20 10 08 04 02 01".
Im 8 Bit langen Datenobjekt hex wird das Bit an den durch den Schleifenzähler sy-index bestimmten Bitpositionen auf den Wert 1 gesetzt, während alle anderen Bits 0 sind.
Ausnahmen
Unbehandelbare Ausnahmen
- Ursache: Die Bitposition ist kleiner oder gleich 0.
Laufzeitfehler: BIT_OFFSET_NOT_POSITIVE
-
Laufzeitfehler: BIT_NO_ZERO_OR_ONE
BAL_S_LOG - Application Log: Log header data BAL_S_LOG - Application Log: Log header data
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 4288 Date: 20240523 Time: 135744 sap01-206 ( 54 ms )