Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Bitweises XOR (^)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Derbitweise XOR (^)-Operator gibt eine Zahl oder ein BigInt zurück, dessen Binärdarstellung in jeder Bitposition1 hat, für die die entsprechenden Bits entweder des einen, aber nicht beider Operanden,1 sind.
In diesem Artikel
Probieren Sie es aus
const a = 5; // 00000000000000000000000000000101const b = 3; // 00000000000000000000000000000011console.log(a ^ b); // 00000000000000000000000000000110// Expected output: 6Syntax
x ^ yBeschreibung
Der^-Operator ist für zwei Arten von Operanden überladen: Zahl undBigInt. Für Zahlen gibt der Operator eine 32-Bit-Ganzzahl zurück. Für BigInts gibt der Operator ein BigInt zurück. Erzwingt zuerst beide Operanden in numerische Werte um und prüft ihre Typen. Er führt ein BigInt-XOR aus, wenn beide Operanden zu BigInts werden; andernfalls konvertiert er beide Operanden in32-Bit-Ganzzahlen und führt ein bitweises XOR der Zahlen aus. EinTypeError wird ausgelöst, wenn ein Operand zu einem BigInt, der andere jedoch zu einer Zahl wird.
Der Operator arbeitet auf den Bitdarstellungen der Operanden imZweierkomplement. Jedes Bit im ersten Operand wird mit dem entsprechenden Bit im zweiten Operand gepaart:erstes Bit zuerstem Bit,zweites Bit zuzweitem Bit und so weiter. Der Operator wird auf jedes Bitpaar angewendet, und das Ergebnis wird bitweise konstruiert.
Die Wahrheitstabelle für die XOR-Operation ist:
| x | y | x XOR y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
9 (base 10) = 00000000000000000000000000001001 (base 2) 14 (base 10) = 00000000000000000000000000001110 (base 2) --------------------------------14 ^ 9 (base 10) = 00000000000000000000000000000111 (base 2) = 7 (base 10)
Zahlen mit mehr als 32 Bit haben ihre höchstwertigen Bits verworfen. Zum Beispiel wird die folgende Ganzzahl mit mehr als 32 Bit in eine 32-Bit-Ganzzahl konvertiert:
Before: 11100110111110100000000000000110000000000001After: 10100000000000000110000000000001
Warnung:Sie können sehen, dass Leute^ 0 verwenden, um Zahlen auf Ganzzahlen zu kürzen. Bitweises XOR einer beliebigen Zahlx mit0 gibtx als 32-Bit-Ganzzahl zurück, was zusätzlich führende Bits für Zahlen außerhalb des Bereichs von -2147483648 bis 2147483647 entfernt. Verwenden Sie stattdessenMath.trunc().
Für BigInts gibt es keine Kürzung. Konzeptionell können Sie positive BigInts als mit einer unendlichen Anzahl führender0-Bits und negative BigInts als mit einer unendlichen Anzahl führender1-Bits verstehen.
Beispiele
>Verwendung von bitweisem XOR
// 9 (00000000000000000000000000001001)// 14 (00000000000000000000000000001110)14 ^ 9;// 7 (00000000000000000000000000000111)14n ^ 9n; // 7nSpezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # prod-BitwiseXORExpression> |