Bitmanipulation

Bitmanipulation

Zur Erinnerung: Eine ganze Zahl lässt sich in dezimaler, binärer oder hexadezimaler Form schreiben:

13 (dezimal) = 0b1101 = 0xd

> Mit den Funktionen binString und hexString erhält man die binäre bzw. hexadezimale Darstellung einer ganzen Zahl.

Wer binäre Werte manipulieren kann, kann einzelne Schritte bei häufigen Berechnungen optimieren oder Reihen von booleschen Werten schnell verarbeiten.

Was ist eine Binärzahl

Eine Binärzahl kann zugleich eine Zahl und ein Array boolescher Werte darstellen. Da ganze Zahlen 64 Bit groß sind, lassen sich 64 boolesche Werte in einer einzigen ganzen Zahl unterbringen. Im Folgenden gilt: Ein Bit mit dem Wert 1 entspricht true, ein Bit mit dem Wert 0 entspricht false.

Verfügbare Operatoren und Funktionen

Die Bitoperatoren von LeekScript sind:

Eigene Funktionen erleichtern die bitweise Manipulation ebenfalls: testBit, setBit, bitCount, bitLength, trailingZeros und leadingZeros.

Für ganze Zahlen mit mehr als 64 Bit siehe BigInteger.

Bitmasken

Bitmasken dienen dazu, den Wert einzelner Bits oder Bitgruppen einer Zahl auszulesen.

Den Wert des Bits an Position N auslesen

Um den Wert an Position N zu erhalten:

Den Wert von N aufeinanderfolgenden Bits auslesen

Um den Wert der letzten N Bits zu erhalten:

Dabei ist 0b111...111 eine Binärzahl mit N-mal der Ziffer 1, also gleichbedeutend mit 2**N-1.