| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Bitwise_AND | [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 UND (&) Operator gibt eine Zahl oder BigInt zurck, deren binre Darstellung an jeder Bitposition, fr die beide entsprechenden Bits der Operanden 1 sind, eine 1 hat.
const a = 5; // 00000000000000000000000000000101
const b = 3; // 00000000000000000000000000000011
console.log(a & b); // 00000000000000000000000000000001
// Expected output: 1
x & y
Der & Operator ist fr zwei Typen von Operanden berladen: Zahl und BigInt. Fr Zahlen gibt der Operator einen 32-Bit-Integer zurck. Fr BigInts gibt der Operator einen BigInt zurck. Zuerst zwingt er beide Operanden zu numerischen Werten und prft ihre Typen. Er fhrt BigInt AND durch, wenn beide Operanden zu BigInts werden; andernfalls konvertiert er beide Operanden zu 32-Bit-Integern und fhrt ein numerisches bitweises UND durch. Ein TypeError wird ausgelst, wenn ein Operand zu einem BigInt wird, der andere jedoch zu einer Zahl.
Der Operator arbeitet auf den Bit-Darstellungen der Operanden im Zweierkomplement. Jedes Bit im ersten Operanden wird mit dem entsprechenden Bit im zweiten Operanden gepaart: erstes Bit zu erstes Bit, zweites Bit zu zweites Bit, und so weiter. Der Operator wird auf jedes Bitpaar angewendet, und das Ergebnis wird bitweise aufgebaut.
Die Wahrheitstabelle fr 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: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001
Warnung:
Sie knnten sehen, dass & -1 verwendet wird, um Zahlen auf ganze Zahlen zu krzen. Bitweises UND einer beliebigen Zahl x mit -1 gibt x zurck, in einen 32-Bit-Integer konvertiert, was zustzlich fhrende Bits fr Zahlen auerhalb des Bereichs von -2147483648 bis 2147483647 entfernt. Verwenden Sie stattdessen Math.trunc().
Bei BigInts gibt es keine Krzung. Konzeptionell knnen positive BigInts als unendlich viele fhrende 0 Bits betrachtet werden, und negative BigInts als unendlich viele fhrende 1 Bits.
// 9 (00000000000000000000000000001001)
// 14 (00000000000000000000000000001110)
14 & 9;
// 8 (00000000000000000000000000001000)
14n & 9n; // 8n
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # prod-BitwiseANDExpression |
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 |