Bit-Operationen
Bit- und Byte-Manipulation in der TapHome-Skriptsprache — GETBIT, GETBITS, GETBYTE, SETBYTE, SETBIT, SETBITS, Bitverschiebungen sowie bitweises AND/OR.
GETBIT
Gibt den Wert eines Bits an einer bestimmten Position zurück.
GETBIT(number, bit_position)Argumente:
- number – Zahl, aus der das Bit extrahiert werden soll
- bit_position – Position des Bits, beginnend bei 0, von rechts
Beispiele:
- GETBIT(2, 0) → erstes Bit der Zahl 2 (0b0010) ist 0
- GETBIT(4,2) → drittes Bit der Zahl 4 (0b0100) ist 1
GETBITS
Gibt den Wert der angegebenen Anzahl Bits an der angegebenen Position zurück.
GETBITS(number, start_bit, number_of_bits)Beispiele:
- GETBITS(216, 3, 2) → Zahl 216 = 0b1101 1000; Wert des 4. Bits von rechts ist 1, das 5. Bit ist 1, daher ergibt sich 0b0011 = 3
- GETBITS(0xFF, 0, 4) → Zahl 0xFF = 255 = 0b1111 1111; Wert der ersten 4 Bits von rechts ist 0b1111 = 0xF = 15
GETBYTE
Gibt den Wert eines Bytes an der angegebenen Stelle zurück.
GETBYTE( number, byte_position )Argumente:
- number – Zahl, aus der das Byte extrahiert wird
- byte_position – Position des Bytes, beginnend bei 0, von rechts
Beispiele:
GETBYTE(256, 0) → 0001 0000 0000 → 0
GETBYTE(256, 1) → 0001 0000 0000 → 1
GETBYTE(259, 0) → 0001 0000 0011 → 3SETBYTE
Weist dem angegebenen Byte der bereitgestellten Zahl einen neuen Wert zu und gibt die neue Zahl zurück.
SETBYTE( number, byte_position, new_value )Beispiele:
SETBYTE(1, 0, 0) → 0
SETBYTE(256, 0, 255) → 511
SETBYTE(256, 1, 1) → 256
SETBYTE(259, 1, 2) → 515SETBIT
Weist dem angegebenen Bit der Zahl einen neuen Wert zu und gibt eine neue Zahl zurück.
SETBIT(number, bit_position, new_value)Argumente:
- number – zu bearbeitende Zahl
- bit_position – Position des Bits, beginnend bei 0, von rechts
- new_value – 0 oder 1 – Wert, der dem angegebenen Bit zugewiesen wird
Beispiele:
- SETBIT(1, 1, 1) → 3
- SETBIT(3, 1, 1) → 3
- SETBIT(4, 2, 0) → 4
- SETBIT(12, 1, 0) → 14
SETBITS
Weist dem angegebenen Bitbereich in der bereitgestellten Zahl einen neuen Wert zu und gibt eine neue Zahl zurück.
SETBITS(number, start_bit, number_of_bits, new_value)Beispiele:
- SETBITS(192, 4, 2, 3) → 240
- SETBITS(192, 5, 2, 3) → 224
« (LEFT BIT SHIFT)
8 << 2 (32)Excel: BITLSHIFT(number, shift_amount)
» (RIGHT BIT SHIFT)
32 >> 2 (8)Excel: BITRSHIFT(number, shift_amount)
& (BITWEISES AND)
3 & 1 (1)Excel: BITAND(number1, number2)
| (BITWEISES OR)
2 | 1 (3)Excel: BITOR(number1, number2)
Siehe das Beispiel zu Bit-Operationen in Google Sheets: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing
Oder probieren Sie das interaktive Tool unter http://bitwisecmd.com/