[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Bitwise_XOR [Back]  [Original]

Bitweises XOR (^) - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

Bitweises XOR (^)

Baseline Weitgehend verfgbar

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.

In diesem Artikel

Probieren Sie es aus

const a = 5; // 00000000000000000000000000000101
const b = 3; // 00000000000000000000000000000011

console.log(a ^ b); // 00000000000000000000000000000110
// Expected output: 6

Syntax

js
x ^ y

Beschreibung

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.

Beispiele

Verwendung von bitweisem XOR

js
// 9  (00000000000000000000000000001001)
// 14 (00000000000000000000000000001110)

14 ^ 9;
// 7  (00000000000000000000000000000111)

14n ^ 9n; // 7n

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# prod-BitwiseXORExpression

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page