Manipolazione dei bit

Manipolazione dei bit

Ricordiamo che un intero può essere scritto in forma decimale, binaria o esadecimale:

13 (decimale) = 0b1101 = 0xd

> Le funzioni binString e hexString possono essere usate per ottenere rispettivamente la rappresentazione binaria ed esadecimale di un intero.

L'interesse di saper manipolare valori binari sta nel poter ottimizzare alcune fasi di calcoli frequenti, o nel manipolare rapidamente serie di booleani.

Che cos'è un numero binario

Un numero binario può rappresentare sia un numero sia un array di valori booleani. Poiché gli interi sono a 64 bit, si possono rappresentare 64 valori booleani in un solo intero. Nel seguito, consideriamo che un bit a 1 corrisponde a un valore true e un bit a 0 a false.

Operatori e funzioni disponibili

Gli operatori bit a bit del LeekScript sono:

Esistono anche funzioni dedicate che facilitano la manipolazione bit a bit: testBit, setBit, bitCount, bitLength, trailingZeros e leadingZeros.

Per manipolare interi con più di 64 bit, vedi i BigInteger.

Maschere binarie

Le maschere binarie vengono usate per recuperare il valore di bit o gruppi di bit di un numero.

Recuperare il valore di un bit all'indice N

Per recuperare il valore all'indice N:

Recuperare il valore di N bit consecutivi

Per recuperare il valore degli ultimi N bit:

Dove 0b111...111 è un numero binario con la cifra 1 ripetuta N volte, quindi equivalente a 2**N-1.