TapHome

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

SETBYTE

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

SETBIT

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/