Bitmanipulasjon

Bitmanipulasjon

Husk at et heltall kan skrives på desimal, binær eller heksadesimal form:

13 (desimal) = 0b1101 = 0xd

> Funksjonene binString og hexString kan brukes for å få henholdsvis den binære og den heksadesimale representasjonen av et heltall.

Poenget med å kunne manipulere binære verdier er å kunne optimalisere trinn i beregninger som gjøres ofte, eller å håndtere rekker av boolske verdier raskt.

Hva er et binært tall

Et binært tall kan representere både et tall og en tabell med boolske verdier. Siden heltall er på 64 bit, kan man representere 64 boolske verdier i ett heltall. I det følgende regner vi med at en bit satt til 1 tilsvarer verdien true, og en bit satt til 0 tilsvarer false.

Tilgjengelige operatorer og funksjoner

De binære operatorene i LeekScript er:

Egne funksjoner gjør det også enklere å manipulere bit for bit: testBit, setBit, bitCount, bitLength, trailingZeros og leadingZeros.

For å håndtere heltall på mer enn 64 bit, se BigInteger.

Bitmasker

Bitmasker brukes for å hente ut verdien til en bit eller en gruppe av bits i et tall.

Hente verdien til biten på indeks N

For å hente verdien på indeks N:

Hente verdien til N påfølgende bits

For å hente verdien til de N siste bitene:

Der 0b111...111 er et binært tall med N enere, altså tilsvarende 2**N-1.