Bitmanipulering

Bitmanipulering

Kom ihåg att ett heltal kan skrivas i decimal, binär eller hexadecimal form:

13 (decimalt) = 0b1101 = 0xd

> Funktionerna binString och hexString kan användas för att få den binära respektive hexadecimala representationen av ett heltal.

Poängen med att kunna hantera binära värden är att kunna optimera steg i beräkningar som görs ofta, eller att snabbt hantera serier av booleska värden.

Vad är ett binärt tal

Ett binärt tal kan representera både ett tal och en array av booleska värden. Eftersom heltal är på 64 bitar kan man representera 64 booleska värden i ett enda heltal. I det följande betraktar vi en bit satt till 1 som värdet true, och en bit satt till 0 som false.

Tillgängliga operatorer och funktioner

De binära operatorerna i LeekScript är:

Det finns också särskilda funktioner som underlättar bitvis hantering: testBit, setBit, bitCount, bitLength, trailingZeros och leadingZeros.

För att hantera heltal på mer än 64 bitar, se BigInteger.

Bitmasker

Bitmasker används för att hämta värdet av en bit eller en grupp av bitar i ett tal.

Hämta värdet av biten på index N

För att hämta värdet på index N:

Hämta värdet av N på varandra följande bitar

För att hämta värdet av de N sista bitarna:

Där 0b111...111 är ett binärt tal med N stycken ettor, alltså motsvarande 2**N-1.