| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Bitwise_XOR | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.
Der bitweise XOR (^)-Operator gibt eine Zahl oder ein BigInt zurck, dessen Binrdarstellung in jeder Bitposition 1 hat, fr die die entsprechenden Bits entweder des einen, aber nicht beider Operanden, 1 sind.
const a = 5; // 00000000000000000000000000000101
const b = 3; // 00000000000000000000000000000011
console.log(a ^ b); // 00000000000000000000000000000110
// Expected output: 6
x ^ y
Der ^-Operator ist fr zwei Arten von Operanden berladen: Zahl und BigInt. Fr Zahlen gibt der Operator eine 32-Bit-Ganzzahl zurck. Fr BigInts gibt der Operator ein BigInt zurck. Er zwingt zuerst beide Operanden in numerische Werte um und prft ihre Typen. Er fhrt ein BigInt-XOR aus, wenn beide Operanden zu BigInts werden; andernfalls konvertiert er beide Operanden in 32-Bit-Ganzzahlen und fhrt ein bitweises XOR der Zahlen aus. Ein TypeError wird ausgelst, wenn ein Operand zu einem BigInt, der andere jedoch zu einer Zahl wird.
Der Operator arbeitet auf den Bitdarstellungen der Operanden im Zweierkomplement. Jedes Bit im ersten Operand wird mit dem entsprechenden Bit im zweiten Operand gepaart: erstes Bit zu erstem Bit, zweites Bit zu zweitem Bit und so weiter. Der Operator wird auf jedes Bitpaar angewendet, und das Ergebnis wird bitweise konstruiert.
Die Wahrheitstabelle fr 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 hchstwertigen Bits verworfen. Zum Beispiel wird die folgende Ganzzahl mit mehr als 32 Bit in eine 32-Bit-Ganzzahl konvertiert:
Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001
Warnung:
Sie knnen sehen, dass Leute ^ 0 verwenden, um Zahlen auf Ganzzahlen zu krzen. Bitweises XOR einer beliebigen Zahl x mit 0 gibt x als 32-Bit-Ganzzahl zurck, was zustzlich fhrende Bits fr Zahlen auerhalb des Bereichs von -2147483648 bis 2147483647 entfernt. Verwenden Sie stattdessen Math.trunc().
Fr BigInts gibt es keine Krzung. Konzeptionell knnen Sie positive BigInts als mit einer unendlichen Anzahl fhrender 0-Bits und negative BigInts als mit einer unendlichen Anzahl fhrender 1-Bits verstehen.
// 9 (00000000000000000000000000001001)
// 14 (00000000000000000000000000001110)
14 ^ 9;
// 7 (00000000000000000000000000000111)
14n ^ 9n; // 7n
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # prod-BitwiseXORExpression |
Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |