Bitweises Oder (|)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Der bitweise Oder (|
) Operator gibt eine Zahl oder BigInt zurück, deren binäre Darstellung eine 1
in jedem Bit hat, für das die entsprechenden Bits eines oder beider Operanden 1
sind.
Probieren Sie es aus
Syntax
x | y
Beschreibung
Der |
Operator ist für zwei Arten von Operanden überladen: Zahl und BigInt. Für Zahlen gibt der Operator einen 32-Bit-Integer zurück. Für BigInts gibt der Operator einen BigInt zurück. Zuerst werden beide Operanden in numerische Werte umgewandelt und deren Typen getestet. Er führt ein BigInt Oder durch, wenn beide Operanden zu BigInts werden; andernfalls wandelt er beide Operanden in 32-Bit-Integer um und führt ein numerisches bitweises Oder durch. Ein TypeError
wird ausgelöst, wenn ein Operand zu einem BigInt wird, der andere jedoch zu einer Zahl.
Der Operator arbeitet an den Bit-Darstellungen der Operanden im Zweierkomplement. Jedes Bit im ersten Operand wird mit dem entsprechenden Bit im zweiten Operand kombiniert: erstes Bit zu erstem Bit, zweites Bit zu zweitem Bit, usw. Der Operator wird auf jedes Paar von Bits angewendet und das Ergebnis wird bitweise konstruiert.
Die Wahrheitstabelle für die Oder-Operation ist:
x | y | x OR y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
9 (base 10) = 00000000000000000000000000001001 (base 2) 14 (base 10) = 00000000000000000000000000001110 (base 2) -------------------------------- 14 | 9 (base 10) = 00000000000000000000000000001111 (base 2) = 15 (base 10)
Zahlen mit mehr als 32 Bits verlieren ihre bedeutendsten Bits. Zum Beispiel wird die folgende Zahl mit mehr als 32 Bits in einen 32-Bit-Integer umgewandelt:
Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001
Für BigInts gibt es keine Abschneidung. Konzeptionell sind positive BigInts als unendlich viele führende 0
Bits zu verstehen und negative BigInts als unendlich viele führende 1
Bits.
Ein beliebiges Zahl x
zu 0
mit bitweisem Oder zu verbinden, gibt x
als 32-Bit-Integer zurück. Verwenden Sie nicht | 0
, um Zahlen zu Ganzzahlen zu kürzen; verwenden Sie stattdessen Math.trunc()
.
Beispiele
Verwendung des bitweisen Oder
// 9 (00000000000000000000000000001001)
// 14 (00000000000000000000000000001110)
14 | 9;
// 15 (00000000000000000000000000001111)
14n | 9n; // 15n
Spezifikationen
Specification |
---|
ECMAScript Language Specification # prod-BitwiseORExpression |
Browser-Kompatibilität
BCD tables only load in the browser