TapHome

Operacije s bitovima

Rad s bitovima i bajtovima u skripti TapHome: GETBIT, GETBITS, GETBYTE, SETBYTE, SETBIT, SETBITS, pomaci bitova te bitovni operatori AND/OR.

GETBIT

Vraća vrijednost bita na zadanom položaju.

GETBIT(number, bit_position)

Argumenti:

  • number - broj iz kojeg se izdvaja vrijednost određenog bita
  • bit_position - položaj bita, počevši od 0, zdesna

Primjeri:

  • GETBIT(2, 0) → prvi bit broja 2 (0b0010) je 0
  • GETBIT(4,2) → treći bit broja 4 (0b0100) je 1

GETBITS

Vraća vrijednost zadanog broja bitova na zadanom položaju.

GETBITS(number, start_bit, number_of_bits)

Primjeri:

  • GETBITS(216, 3, 2) → broj 216 = 0b1101 1000; vrijednost 4. bita zdesna je 1, 5. bita je 1, pa je rezultat 0b0011 = 3
  • GETBITS(0xFF, 0, 4) → broj 0xFF = 255 = 0b1111 1111; vrijednost prva 4 bita zdesna je 0b1111 = 0xF = 15

GETBYTE

Vraća vrijednost bajta u zadanom broju.

GETBYTE( number, byte_position )

Argumenti:

  • number - broj iz kojeg se izdvaja vrijednost određenog bajta
  • byte_position - položaj bajta, počevši od 0, zdesna

Primjeri:

GETBYTE(256, 0)  →  0001 0000 0000 →  0
GETBYTE(256, 1)   →  0001 0000 0000  →  1
GETBYTE(259, 0)   →  0001 0000 0011   →  3

SETBYTE

Dodjeljuje novu vrijednost zadanom bajtu u navedenom broju i vraća novi broj.

SETBYTE( number, byte_position, new_value )

Primjeri:

SETBYTE(1, 0, 0)   →   0
SETBYTE(256, 0, 255)   →   511
SETBYTE(256, 1, 1)	  →   256
SETBYTE(259, 1, 2)	  →    515

SETBIT

Dodjeljuje novu vrijednost zadanom bitu u navedenom broju i vraća novi broj.

SETBIT(number, bit_position, new_value)

Argumenti:

  • number - broj koji se mijenja
  • bit_position - položaj bita, počevši od 0, zdesna
  • new_value - 0 ili 1 - vrijednost koja će se postaviti na zadani bit

Primjeri:

  • SETBIT(1, 1, 1) → 3
  • SETBIT(3, 1, 1) → 3
  • SETBIT(4, 2, 0) → 0
  • SETBIT(12, 1, 0) → 12

SETBITS

Dodjeljuje novu vrijednost zadanim bitovima u navedenom broju i vraća novi broj.

SETBITS(number, start_bit, number_of_bits, new_value)

Primjeri:

  • SETBITS(192, 4, 2, 3) → 240
  • SETBITS(192, 5, 2, 3) → 224

« (POMAK BITOVA ULIJEVO)

8 << 2   (32)

Excel: BITLSHIFT(number, shift_amount)

» (POMAK BITOVA UDESNO)

32 >> 2   (8)

Excel: BITRSHIFT(number, shift_amount)

& (BITOVNI AND)

3 & 1   (1)

Excel: BITAND(number1, number2)

| (BITOVNI OR)

2 | 1 (3)

Excel: BITOR(number1, number2)

Pogledajte primjer operacija s bitovima u Google Sheets: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing

Ili isprobajte interaktivni alat na http://bitwisecmd.com/