Operazioni sui bit
Manipolazione di bit e byte nello script TapHome — GETBIT, GETBITS, GETBYTE, SETBYTE, SETBIT, SETBITS, shift di bit e operatori AND/OR bit a bit.
GETBIT
Restituisce il valore di un bit nella posizione specificata.
GETBIT(number, bit_position)Argomenti:
- number - numero da cui estrarre il valore di un bit specifico
- bit_position - posizione del bit, partendo da 0, da destra
Esempi:
- GETBIT(2, 0) → il primo bit del numero 2 (0b0010) è 0
- GETBIT(4,2) → il terzo bit del numero 4 (0b0100) è 1
GETBITS
Restituisce il valore di un numero specificato di bit nella posizione specificata.
GETBITS(number, start_bit, number_of_bits)Esempi:
- GETBITS(216, 3, 2) → numero 216 = 0b1101 1000; il valore del 4° bit da destra è 1, il 5° bit è 1, quindi il risultato è 0b0011 = 3
- GETBITS(0xFF, 0, 4) → numero 0xFF = 255 = 0b1111 1111; il valore dei primi 4 bit da destra è 0b1111 = 0xF = 15
GETBYTE
Restituisce il valore di un byte nel numero specificato.
GETBYTE( number, byte_position )Argomenti:
- number - numero da cui estrarre il valore di un byte specifico
- byte_position - posizione del byte, partendo da 0, da destra
Esemppi:
GETBYTE(256, 0) → 0001 0000 0000 → 0
GETBYTE(256, 1) → 0001 0000 0000 → 1
GETBYTE(259, 0) → 0001 0000 0011 → 3SETBYTE
Assegna un nuovo valore al byte specificato nel numero fornito e restituisce il nuovo numero.
SETBYTE( number, byte_position, new_value )Esempi:
SETBYTE(1, 0, 0) → 0
SETBYTE(256, 0, 255) → 511
SETBYTE(256, 1, 1) → 256
SETBYTE(259, 1, 2) → 515SETBIT
Assegna un nuovo valore al bit specificato nel numero fornito e restituisce un nuovo numero.
SETBIT(number, bit_position, new_value)Argomenti:
- number - numero da modificare
- bit_position - posizione del bit, partendo da 0, da destra
- new_value - 0 o 1 - valore che verrà impostato sul bit specificato
Esempi:
- SETBIT(1, 1, 1) → 3
- SETBIT(3, 1, 1) → 3
- SETBIT(4, 2, 0) → 4
- SETBIT(12, 1, 0) → 14
SETBITS
Assegna un nuovo valore ai bit specificati nel numero fornito e restituisce un nuovo numero.
SETBITS(number, start_bit, number_of_bits, new_value)Esempi:
- SETBITS(192, 4, 2, 3) → 240
- SETBITS(192, 5, 2, 3) → 224
« (LEFT BIT SHIFT)
8 << 2 (32)Excel: BITLSHIFT(number, shift_amount)
» (RIGHT BIT SHIFT)
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)
Vedi l’esempio di operazioni sui bit in Google Sheets: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing
Oppure prova lo strumento interattivo su http://bitwisecmd.com/