TapHome

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   →  3

SETBYTE

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)	  →   515

SETBIT

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/