Bitműveletek
TapHome szkript bit- és bájtkezelés — GETBIT, GETBITS, GETBYTE, SETBYTE, SETBIT, SETBITS, biteltolások, valamint bitenkénti AND/OR operátorok.
GETBIT
Visszaadja egy bit értékét a megadott helyen.
GETBIT(number, bit_position)Argumentumok:
- number – a szám, amelyből a bit értékét ki akarjuk nyerni
- bit_position – a bit pozíciója, 0‑tól jobbra számolva
Példák:
- GETBIT(2, 0) → az 1. bit a 2‑es számnál (0b0010) 0
- GETBIT(4,2) → a 3. bit a 4‑es számnál (0b0100) 1
GETBITS
Visszaadja megadott számú bit értékét a megadott helyen.
GETBITS(number, start_bit, number_of_bits)Példák:
- GETBITS(216, 3, 2) → 216 = 0b1101 1000; a jobbról számított 4. bit értéke 1, az 5. bit is 1, ezért az eredmény 0b0011 = 3
- GETBITS(0xFF, 0, 4) → 0xFF = 255 = 0b1111 1111; az első 4 bit értéke 0b1111 = 0xF = 15
GETBYTE
Visszaad egy bájt értékét a megadott számnál.
GETBYTE( number, byte_position )Argumentumok:
- number – a szám, amelyből ki akarjuk nyerni a bájt értékét
- byte_position – a bájt pozíciója, 0‑tól balra számolva
Példák:
GETBYTE(256, 0) → 0001 0000 0000 → 0
GETBYTE(256, 1) → 0001 0000 0000 → 1
GETBYTE(259, 0) → 0001 0000 0011 → 3SETBYTE
Új értéket rendel a megadott bájthoz a megadott számnál, és visszaadja a módosított értéket.
SETBYTE( number, byte_position, new_value )Példák:
SETBYTE(1, 0, 0) → 0
SETBYTE(256, 0, 255) → 511
SETBYTE(256, 1, 1) → 256
SETBYTE(259, 1, 2) → 515SETBIT
Új értéket rendel a megadott bithez a megadott számnál, és egy új számot ad vissza.
SETBIT(number, bit_position, new_value)Argumentumok:
- number – a módosítani kívánt szám
- bit_position – a bit pozíciója, 0‑tól balra számolva
- new_value – 0 vagy 1 – az adott bitre beállítandó érték
Példák:
- SETBIT(1, 1, 1) → 3
- SETBIT(3, 1, 1) → 3
- SETBIT(4, 2, 0) → 4
- SETBIT(12, 1, 0) → 14
SETBITS
Új értéket rendel a megadott bitekhez a megadott számnál, és egy új számot ad vissza.
SETBITS(number, start_bit, number_of_bits, new_value)Példák:
- SETBITS(192, 4, 2, 3) → 240
- SETBITS(192, 5, 2, 3) → 224
« (BAL OLDALI BIT SHIFT)
8 << 2 (32)Excel: BITLSHIFT(number, shift_amount)
» (JOBB OLDALI BIT SHIFT)
32 >> 2 (8)Excel: BITRSHIFT(number, shift_amount)
& (BITWISE AND)
3 & 1 (1)Excel: BITAND(number1, number2)
| (BITWISE OR)
2 | 1 (3)Excel: BITOR(number1, number2)
Lásd a bitműveletek Google Sheets példáit: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing
Vagy próbáld ki az interaktív eszközt: http://bitwisecmd.com/