Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Bitweises UND (&)
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 UND (&) Operator gibt eine Zahl oder BigInt zurück, deren binäre Darstellung an jeder Bitposition, für die beide entsprechenden Bits der Operanden1 sind, eine1 hat.
In diesem Artikel
Probieren Sie es aus
const a = 5; // 00000000000000000000000000000101const b = 3; // 00000000000000000000000000000011console.log(a & b); // 00000000000000000000000000000001// Expected output: 1Syntax
x & yBeschreibung
Der& Operator ist für zwei Typen von Operanden überladen: Zahl undBigInt. Für Zahlen gibt der Operator einen 32-Bit-Integer zurück. Für BigInts gibt der Operator einen BigInt zurück. Zuerstzwingt er beide Operanden zu numerischen Werten und prüft ihre Typen. Er führt BigInt AND durch, wenn beide Operanden zu BigInts werden; andernfalls konvertiert er beide Operanden zu32-Bit-Integern und führt ein numerisches bitweises UND durch. EinTypeError wird ausgelöst, wenn ein Operand zu einem BigInt wird, der andere jedoch zu einer Zahl.
Der Operator arbeitet auf den Bit-Darstellungen der Operanden imZweierkomplement. Jedes Bit im ersten Operanden wird mit dem entsprechenden Bit im zweiten Operanden gepaart:erstes Bit zuerstes Bit,zweites Bit zuzweites Bit, und so weiter. Der Operator wird auf jedes Bitpaar angewendet, und das Ergebnis wird bitweise aufgebaut.
Die Wahrheitstabelle für die UND-Operation ist:
| x | y | x UND y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
9 (base 10) = 00000000000000000000000000001001 (base 2) 14 (base 10) = 00000000000000000000000000001110 (base 2) --------------------------------14 & 9 (base 10) = 00000000000000000000000000001000 (base 2) = 8 (base 10)
Zahlen mit mehr als 32 Bits verlieren ihre am weitesten links stehenden Bits. Zum Beispiel wird der folgende Integer mit mehr als 32 Bits in einen 32-Bit-Integer konvertiert:
Before: 11100110111110100000000000000110000000000001After: 10100000000000000110000000000001
Warnung:Sie könnten sehen, dass& -1 verwendet wird, um Zahlen auf ganze Zahlen zu kürzen. Bitweises UND einer beliebigen Zahlx mit-1 gibtx zurück, in einen 32-Bit-Integer konvertiert, was zusätzlich führende Bits für Zahlen außerhalb des Bereichs von -2147483648 bis 2147483647 entfernt. Verwenden Sie stattdessenMath.trunc().
Bei BigInts gibt es keine Kürzung. Konzeptionell können positive BigInts als unendlich viele führende0 Bits betrachtet werden, und negative BigInts als unendlich viele führende1 Bits.
Beispiele
>Verwendung des Bitweisen UND
// 9 (00000000000000000000000000001001)// 14 (00000000000000000000000000001110)14 & 9;// 8 (00000000000000000000000000001000)14n & 9n; // 8nSpezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # prod-BitwiseANDExpression> |