Mathematik: bitweise Funktionen
Eine bitweise Funktion arbeitet mit einem oder mehreren Bitmustern oder Binärzahlen auf der Ebene ihrer einzelnen Bits. Verwenden Sie eine bitweise Funktion, um Werte für Vergleiche und Berechnungen zu bearbeiten. Bitweise Funktionen können nur mit Zahlendatentypen verwendet werden und erzeugen ein INT64-Ergebnis.
Wichtig
Wenn Double-/Float-Werte als Argumente angegeben werden, werden sie auf 64-Bit-Ganzzahlen abgeschnitten. Negative Werte werden als 64-Bit-Ganzzahlzahlen mit Zweierkomplement behandelt. Das heißt, -16 und -16,9999 werden als 0xfffffffffffff0 behandelt.
BinaryAnd
BinaryAnd(n,m)
: gibt einen Binärwert von (n) und (m) zurück. Das Ergebnis ist 1, wenn sowohl n als auch m 1 sind, und andernfalls 0. Wenn 0 mit False und 1 mit True gleichgesetzt wird, funktioniert die BinaryAnd-Operation wie ein logisches und. Beachten Sie, dass bei den Ergebniswerten kein Dezimalzeichen vorhanden ist. Das Ergebnis ist eine Ganzzahl, kein Doppel-/Gleitkommawert.
Beispiel
BinaryAnd(1,1)
Gibt 1 zurück.
BinaryAnd(1,0)
Gibt 0 zurück.
BinaryAnd(12,6)
Gibt 4 zurück.
BinaryAnd(12.99, 6.99)
Gibt 4 zurück.
BinaryAnd(-12, 6.99)
Gibt 4 zurück.
BinaryNot
BinaryNot(n)
: gibt ein binäres „Not“ von (n) zurück. Zahlen werden als 64-Bit-Zahlen behandelt, zwei Komplementnummern.
Beispiel
BinaryNot(6)
Gibt -7 zurück.
BinaryNot(2)
Gibt -3 zurück.
BinaryNot(-1)
Gibt 0 zurück.
BinaryNot(0)
Gibt -1 zurück.
BinaryOr
BinaryOr(n,m)
: gibt ein binäres „Or“ von (n) und (m) zurück.
Beispiel
BinaryOr(6,6)
Ergibt 6.
BinaryOr(6,2)
Ergibt 6.
BinaryOr(4,2)
Ergibt 6.
BinaryOr(12,6)
Gibt 14 zurück.
BinaryXOR
BinaryXOr(n,m)
: gibt ein binäres „XOr“ von (n) und (m) zurück.
Beispiel
BinaryXOr(6,6)
Gibt 0 zurück.
BinaryXOr(6,2)
Gibt 4 zurück.
BinaryXOr(6,12)
gibt 10 zurück.
ShiftLeft
ShiftLeft(n,b)
: verschiebt (n) (als Ganzzahl) um (b) Bits nach links.
ShiftRight
ShiftRight(n,b)
: verschiebt (n) (als Ganzzahl) um (b) Bits nach rechts.
Sowohl für ShiftLeft als auch für ShiftRight ergibt sich ein Int64, sodass nur 64 Bit verfügbar sind.
Beispiel
ShiftLeft(pow(2,62),1)
ergibt
-POW(2,63)
. Schiebe es noch einmal nach links und du bekommst null.
ShiftRight(1,1)
Gibt Null zurück.
ShiftRight(-1,1)
Gibt
Int64_Max zurück
.