Operații pe biți
Manipularea biților și octeților în scriptul TapHome — GETBIT, GETBITS, GETBYTE, SETBYTE, SETBIT, SETBITS, deplasări de biți și operatorii AND/OR pe biți.
GETBIT
Returnează valoarea unui bit la poziția specificată.
GETBIT(number, bit_position)Argumente:
- number - numărul din care se extrage valoarea bitului specificat
- bit_position - poziția bitului, începând cu 0, de la dreapta
Exemple:
- GETBIT(2, 0) → primul bit al numărului 2 (0b0010) este 0
- GETBIT(4,2) → al treilea bit al numărului 4 (0b0100) este 1
GETBITS
Returnează valoarea formată din numărul specificat de biți, începând de la poziția specificată.
GETBITS(number, start_bit, number_of_bits)Exemple:
- GETBITS(216, 3, 2) → numărul 216 = 0b1101 1000; valoarea celui de-al 4-lea bit de la dreapta este 1, al 5-lea bit este 1, deci rezultatul este 0b0011 = 3
- GETBITS(0xFF, 0, 4) → numărul 0xFF = 255 = 0b1111 1111; valoarea primilor 4 biți de la dreapta este 0b1111 = 0xF = 15
GETBYTE
Returnează valoarea unui octet din numărul specificat.
GETBYTE( number, byte_position )Argumente:
- number - numărul din care se extrage valoarea octetului specificat
- byte_position - poziția octetului, începând de la 0, de la dreapta
Exemple:
GETBYTE(256, 0) → 0001 0000 0000 → 0
GETBYTE(256, 1) → 0001 0000 0000 → 1
GETBYTE(259, 0) → 0001 0000 0011 → 3SETBYTE
Atribuie o nouă valoare octetului specificat în numărul furnizat și returnează numărul rezultat.
SETBYTE( number, byte_position, new_value )Exemple:
SETBYTE(1, 0, 0) → 0
SETBYTE(256, 0, 255) → 511
SETBYTE(256, 1, 1) → 256
SETBYTE(259, 1, 2) → 515SETBIT
Atribuie o nouă valoare bitului specificat în numărul furnizat și returnează un nou număr.
SETBIT(number, bit_position, new_value)Argumente:
- number - numărul care urmează să fie modificat
- bit_position - poziția bitului, începând cu 0, de la dreapta
- new_value - 0 sau 1 - valoarea care se setează pentru bitul specificat
Exemple:
- SETBIT(1, 1, 1) → 3
- SETBIT(3, 1, 1) → 3
- SETBIT(4, 2, 0) → 0
- SETBIT(12, 1, 0) → 12
SETBITS
Atribuie o nouă valoare biților specificați în numărul furnizat și returnează un nou număr.
SETBITS(number, start_bit, number_of_bits, new_value)Exemple:
- SETBITS(192, 4, 2, 3) → 240
- SETBITS(192, 5, 2, 3) → 224
« (DEPLASARE DE BIȚI LA STÂNGA)
8 << 2 (32)Excel: BITLSHIFT(number, shift_amount)
» (DEPLASARE DE BIȚI LA DREAPTA)
32 >> 2 (8)Excel: BITRSHIFT(number, shift_amount)
& (AND PE BIȚI)
3 & 1 (1)Excel: BITAND(number1, number2)
| (OR PE BIȚI)
2 | 1 (3)Excel: BITOR(number1, number2)
Consultați exemplul de operații pe biți în Google Sheets: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing
Sau încercați instrumentul interactiv de la http://bitwisecmd.com/