Skip to main content

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 .