Bitové operace
Manipulace s bity a bajty ve skriptu TapHome — GETBIT, GETBITS, GETBYTE, SETBYTE, SETBIT, SETBITS, bitové posuny a bitové operátory AND/OR.
GETBIT
Vrací hodnotu bitu na zadané pozici.
GETBIT(number, bit_position)Argumenty:
- number - číslo, ze kterého má být hodnota konkrétního bitu vyextrahována
- bit_position - pozice bitu, počítaná od 0 z pravé strany
Příklady:
- GETBIT(2, 0) → první bit čísla 2 (0b0010) je 0
- GETBIT(4,2) → třetí bit čísla 4 (0b0100) je 1
GETBITS
Vrací hodnotu zadaného počtu bitů na konkrétní pozici.
GETBITS(number, start_bit, number_of_bits)Příklady:
- GETBITS(216, 3, 2) → číslo 216 = 0b1101 1000; čtvrtý bit z pravé strany je 1, pátý bit je 1, takže výsledek je 0b0011 = 3
- GETBITS(0xFF, 0, 4) → číslo 0xFF = 255 = 0b1111 1111; prvních 4 bitů z pravé strany je 0b1111 = 0xF = 15
GETBYTE
Vrací hodnotu bajtu na zadané pozici v daném čísle.
GETBYTE( number, byte_position )Argumenty:
- number - číslo, ze kterého má být hodnota konkrétního bajtu vyextrahována
- byte_position - pozice bajtu, počítaná od 0 z pravé strany
Příklady:
GETBYTE(256, 0) → 0001 0000 0000 → 0
GETBYTE(256, 1) → 0001 0000 0000 → 1
GETBYTE(259, 0) → 0001 0000 0011 → 3SETBYTE
Přiřadí novou hodnotu do zadaného bajtu v uvedeném čísle a vrátí nové číslo.
SETBYTE( number, byte_position, new_value )Příklady:
SETBYTE(1, 0, 0) → 0
SETBYTE(256, 0, 255) → 511
SETBYTE(256, 1, 1) → 256
SETBYTE(259, 1, 2) → 515SETBIT
Přiřadí novou hodnotu k zadanému bitu v daném čísle a vrátí nové číslo.
SETBIT(number, bit_position, new_value)Argumenty:
- number - číslo, které má být upraveno
- bit_position - pozice bitu, počítaná od 0 z pravé strany
- new_value - 0 nebo 1 – hodnota, která bude nastavena na určený bit
Příklady:
- SETBIT(1, 1, 1) → 3
- SETBIT(3, 1, 1) → 3
- SETBIT(4, 2, 0) → 4
- SETBIT(12, 1, 0) → 14
SETBITS
Přiřadí novou hodnotu vybraným bitům v uvedeném čísle a vrátí nové číslo.
SETBITS(number, start_bit, number_of_bits, new_value)Příklady:
- SETBITS(192, 4, 2, 3) → 240
- SETBITS(192, 5, 2, 3) → 224
« (LEVÉ POSUNUTÍ BITŮ)
8 << 2 (32)Excel: BITLSHIFT(number, shift_amount)
» (PRAVÉ POSUNUTÍ BITŮ)
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)
Podívejte se na příklad operací s bity v Google Sheets: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing
Nebo vyzkoušejte interaktivní nástroj na http://bitwisecmd.com/