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 July 2015.
Der bitweise UND (&
)-Operator gibt eine Zahl oder ein BigInt zurück, dessen Binärdarstellung in jeder Bit-Position, für die die entsprechenden Bits beider Operanden 1
sind, eine 1
enthält.
Probieren Sie es aus
const a = 5; // 00000000000000000000000000000101
const b = 3; // 00000000000000000000000000000011
console.log(a & b); // 00000000000000000000000000000001
// Expected output: 1
Syntax
x & y
Beschreibung
Der &
-Operator ist für zwei Operanden-Typen überladen: Zahl und BigInt. Für Zahlen gibt der Operator eine 32-Bit-Zahl zurück. Für BigInts gibt der Operator ein BigInt zurück. Zuerst wandelt er beide Operanden in numerische Werte um und prüft deren Typen. Er führt ein BigInt UND aus, wenn beide Operanden zu BigInts werden; andernfalls werden beide Operanden in 32-Bit-Zahlen umgewandelt und ein bitweises UND für Zahlen wird ausgeführt. Ein TypeError
wird ausgelöst, wenn ein Operand ein BigInt wird, der andere jedoch eine Zahl.
Der Operator arbeitet mit den Bit-Repräsentationen der Operanden in der Zweierkomplement-Darstellung. Jedes Bit im ersten Operanden wird mit dem entsprechenden Bit im zweiten Operanden gepaart: erstes Bit mit erstem Bit, zweites Bit mit zweitem Bit usw. Der Operator wird auf jedes Bit-Paar angewendet, und das Ergebnis wird bitweise konstruiert.
Die Wahrheitstabelle für die UND-Operation lautet:
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 Bit verlieren ihre höchstwertigen Bits. Zum Beispiel wird die folgende Ganzzahl mit mehr als 32 Bit in eine 32-Bit-Zahl umgewandelt:
Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001
Für BigInts gibt es keine Abschneidung. Konzeptuell kann man sich positive BigInts mit einer unendlichen Anzahl führender 0
-Bits und negative BigInts mit einer unendlichen Anzahl führender 1
-Bits vorstellen.
Ein bitweises UND mit einer beliebigen Zahl x
und -1
gibt x
als 32-Bit-Zahl zurück. Verwenden Sie nicht & -1
, um Zahlen auf Ganzzahlen zu kürzen; verwenden Sie stattdessen Math.trunc()
.
Beispiele
Verwendung von bitweisem UND
// 9 (00000000000000000000000000001001)
// 14 (00000000000000000000000000001110)
14 & 9;
// 8 (00000000000000000000000000001000)
14n & 9n; // 8n
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # prod-BitwiseANDExpression |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bitwise AND ( a & b ) |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support