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 → 3SETBYTE
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) → 515SETBIT
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/