Bitbewerkingen

Bitbewerkingen

Ter herinnering: een geheel getal kan in decimale, binaire of hexadecimale vorm worden geschreven:

13 (decimaal) = 0b1101 = 0xd

> De functies binString en hexString kunnen worden gebruikt om respectievelijk de binaire en de hexadecimale weergave van een geheel getal te verkrijgen.

Het nut van het kunnen bewerken van binaire waarden is dat je stappen in veelvoorkomende berekeningen kunt optimaliseren, of reeksen booleans snel kunt bewerken.

Wat is een binair getal

Een binair getal kan zowel een getal als een array van booleaanse waarden voorstellen. Aangezien gehele getallen 64 bits groot zijn, kun je 64 booleaanse waarden in één geheel getal opslaan. In het vervolg beschouwen we een bit op 1 als een waarde true, en een bit op 0 als false.

Beschikbare operatoren en functies

De bitoperatoren van LeekScript zijn:

Speciale functies maken het bitsgewijs bewerken ook makkelijker: testBit, setBit, bitCount, bitLength, trailingZeros en leadingZeros.

Om gehele getallen van meer dan 64 bits te bewerken, zie BigInteger.

Bitmaskers

Bitmaskers worden gebruikt om de waarde van bits of groepen bits van een getal op te halen.

De waarde van een bit op index N ophalen

Om de waarde op index N op te halen:

De waarde van N opeenvolgende bits ophalen

Om de waarde van de laatste N bits op te halen:

Waarbij 0b111...111 een binair getal is met N keer het cijfer 1, dus gelijk aan 2**N-1.