prevnext   » Startseite » Haupt-Referenz » Generelle Informationen » Bit-Manipulationen

Bit-Manipulationen

Einige Funktionen erlauben Bitmanipulationen auf Ganzzahlen (32 und 64 Bit), auf Fließkommazahlen und auch auf Zeichenketten. Alle Funktionen sind gegenüber den Parametern robust, so dass jegliche Werte erlaubt sind.

Bei den Zahlen wird einfach das entsprechende Bit gesetzt, gelöscht oder abgefragt. Nicht vorhandene Bits werden als nicht gesetzt (Wert 0) interpretiert und Änderungsversuche an diesen Bits werden ignoriert.

Mit Zeichenketten lassen sich beliebig große Bitfelder erzeugen, wobei Bitnummern von Null bis 2.147.483.647 möglich sind. Bei Abfragen werden nicht vorhandene Bits als nicht gesetzt (Wert 0) interpretiert. Beim Setzen von Bits wird die Zeichenkette mit entsprechend vielen 0-Zeichen (ASCII Wert 0) erweitert und das angegebene Bit gesetzt. Dabei gilt: Das 0. Zeichen enthält die Bits 0..7, das 1. Zeichen die Bits 8..15 usw.

Die folgenden Funktionen manipulieren einzelne Bits:

Bit-Manipulation
Funktion Kurzinfo
bitField2list() Aus einem Bitfeld eine numerische Liste erzeugen.
clearBit() Ein Bit löschen.
clearBits() Mehrere aufeinanderfolgende Bits in einem Bitfeld löschen.
count0bits() Anzahl der 0-Bits zählen.
count1bits() Anzahl der 1-Bits zählen.
highest0bit() Das höchstwertigste 0-Bit suchen.
highest1bit() Das höchstwertigste 1-Bit suchen.
invertBit() Ein Bit invertieren.
invertBits() Mehrere aufeinanderfolgende Bits in einem Bitfeld invertieren.
l$bitField() Aus den numerischen Elementen einer Liste wird ein Bitfeld erzeugt.
lowest0bit() Das niederwertigste 0-Bit suchen.
lowest1bit() Das niederwertigste 1-Bit suchen.
normBits()
printBitField() Ein Bitfeld in eine textuelle Darstellung überführen.
scanBitField()
setBit() Ein Bit setzen.
setBits() Mehrere aufeinanderfolgende Bits in einem Bitfeld setzen.
shiftBits()
testBit()

Die folgenden Funktionen verknüpfen ganze Bitfelder miteinander:

Bitfeld Verknüpfung
Funktion Kurzinfo
and() Die Bitfeld-Berechnung 'A and B' durchführen.
andNot() Die Bitfeld-Berechnung 'A and not B' durchführen.
eor() Die Bitfeld-Berechnung 'A eor B' durchführen.
not() Die Bitfeld-Berechnung 'not A' durchführen.
notAnd() Die Bitfeld-Berechnung 'not A and B' durchführen.
notAndNot() Die Bitfeld-Berechnung 'not A and not B' durchführen.
notEor() Die Bitfeld-Berechnung 'not A eor B' durchführen.
notOr() Die Bitfeld-Berechnung 'not A or B' durchführen.
notOrNot() Die Bitfeld-Berechnung 'not A or not B' durchführen.
or() Die Bitfeld-Berechnung 'A or B' durchführen.
orNot() Die Bitfeld-Berechnung 'A or not B' durchführen.