Bitweise JavaScript-Operatoren (mit Beispielen)

Inhaltsverzeichnis

In diesem Tutorial lernen Sie anhand von Beispielen die bitweisen JavaScript-Operatoren und ihre Typen kennen.

Bitweise JavaScript-Operatoren

Bitweise Operatoren behandeln ihre Operanden als einen Satz von 32-Bit-Binärziffern (Nullen und Einsen) und führen Aktionen aus. Das Ergebnis wird jedoch als Dezimalwert angezeigt.

Betreiber Name Beispiel
& Bitweises UND x & y
| Bitweises ODER x | y
^ Bitweises XOR x y
~ Bitweise NICHT ~x
<< Linksverschiebung x << y
>> Vorzeichenausbreitung nach rechts x>> y
>>> Null-Füll-Rechtsverschiebung x>>> y

Hinweis : Die minimalen und maximalen Ganzzahlen, die durch eine vorzeichenbehaftete 32-Bit-Nummer dargestellt werden können, sind -2147483648 bis 2147483647.

JavaScript Bitweises UND

Bitweises UND &gibt 1 zurück, wenn die entsprechenden Bits beider Operanden 1 sind, andernfalls 0 .

Operand 1 Operand 2 UND Betrieb
0 0 0 & 0ist 0
0 1 0 & 1ist 0
1 0 1 & 0ist 0
1 1 1 & 1ist 1

Schauen wir uns die bitweise UND-Verknüpfung zweier Ganzzahlen 12 und 25 an .

 In binär 12 = 01100 25 = 11001 // Bitweises UND-Betrieb von 12 und 25 00001100 & 00011001 --------- 00001000 = 8 (dezimal)

Hinweis : Konvertieren von 12 auf 32-Bit binären gibt uns 00000000000000000000000000001100und 25 gibt 00000000000000000000000000011001. Der Einfachheit halber haben wir jedoch die vorhergehenden Nullen entfernt.

Beispiel 1: Bitweiser UND-Operator

 // bitwise AND operator example let a = 12; let b = 25; result = a & b; console.log(result); // 8 

Im obigen Programm

  • Der Binärwert von 12 ist00000000000000000000000000001100
  • Der Binärwert von 25 ist 00000000000000000000000000011001.
  • Wenn eine bitweise UND- Verknüpfung ausgeführt wird, wird das binäre Ergebnis 00000000000000000000000000001000in den Dezimalwert 8 konvertiert.

JavaScript Bitweises ODER

Bitweises ODER |gibt 1 zurück, wenn eines der entsprechenden Bits eines Operanden 1 ist, andernfalls 0 .

Operand 1 Operand 2 ODER Betrieb
0 0 0 | 0ist 0
0 1 0 | 1ist 1
1 0 1 | 0ist 1
1 1 1 | 1ist 1

Schauen wir uns die bitweise ODER-Verknüpfung zweier Ganzzahlen 12 und 25 an .

In binär ist 12 = 01100 25 = 11001 // Bitweise ODER Operation von 12 und 25 00001100 | 00011001 -------- 00011101 = 29 (dezimal)

Beispiel 2: Bitweiser ODER-Operator

 // bitwise OR operator example let a = 12; let b = 25; result = a | b; console.log(result); // 29

Wenn eine bitweise ODER- Verknüpfung ausgeführt wird, wird das binäre Ergebnis 00000000000000000000000000011101in den Dezimalwert 29 umgewandelt.

JavaScript Bitweises XOR

Bitweises XOR ^gibt 1 zurück, wenn die entsprechenden Bits unterschiedlich sind, und 0, wenn die entsprechenden Bits gleich sind.

Operand 1 Operand 2 XOR-Betrieb
0 0 0 0ist 0
0 1 0 1ist 1
1 0 1 0ist 1
1 1 1 1ist 0
 In binär 12 = 01100 25 = 11001 // Bitweise XOR-Operation von 12 und 25 00001100 00011001 -------- 00010101 = 21 (dezimal)

Beispiel 3: Bitweiser XOR-Operator

 // bitwise XOR operator example let a = 12; let b = 25; result = a b; console.log(result); // 21

Wenn eine bitweise XOR- Operation ausgeführt wird, wird das binäre Ergebnis 00000000000000000000000000010101in den Dezimalwert 21 umgewandelt.

JavaScript Bitweise NICHT

Bitwise NOT ~ inverts the bit( 0 becomes 1, 1 becomes 0).

 In binary, 12 = 00000000000000000000000000001100 // Bitwise Not Operation of 12 ~ 00000000000000000000000000001100 --------------------------------- 11111111111111111111111111110011 = -13(In decimal)

While converting 11111111111111111111111111110011 to decimal, the value would be 4294967283. But when using bitwise operator, the value is computed in signed 2's complement format except for zero-fill right shift.

2's complement is computed by inverting the bits(1's complement) and then adding 1. For example,

 13 in binary: 00000000000000000000000000001101 1's complement of 13: 11111111111111111111111111110010 2's complement of 13: 11111111111111111111111111110010 +1 --------------------------------- 11111111111111111111111111110011

Notice the 2's complement of 13 (i.e. -13) is 11111111111111111111111111110011. This value is equivalent to the bitwise NOT of 12.

Example 4: Bitwise NOT Operator

 // bitwise NOT operator example let b = 12; result = ~b; console.log(result); // -13

When bitwise NOT operation is performed, the binary result will be 11111111111111111111111111110011 which converts into the decimal value -13.

Note: Bitwise NOT of a number x gives -(x + 1). Notice above ~2 gives -3.

JavaScript Left shift

Im linken Verschiebungsoperator <<gibt der linke Operand die Nummer und der rechte Operand die Nummer an, die nach links verschoben werden soll. Rechts werden Null-Bits hinzugefügt und überschüssige Bits von links werden verworfen.

Eine Bit-Linksverschiebung in JavaScript

Beispielsweise,

 let a = 8; let b = 1; result = a << b; // 1 ( 00000000000000000000000000010000 ) console.log(result);

JavaScript Vorzeichenverbreitende Rechtsverschiebung

Im rechten Verschiebungsoperator >>gibt der erste Operand die Nummer und der zweite Operand die Nummer an, die nach rechts verschoben werden soll. Überschüssige Bits von rechts werden verworfen. Die Kopien des Bits ganz links werden von links verschoben, daher wird das Namenszeichen weitergegeben.

Eine Bit-Rechtsverschiebung mit vorzeichenverbreitender Füllung in JavaScript

Beispielsweise,

 let a = 8; let b = 1; // 11111111111111111111111111111101 let c = -3; result = a>> b; result1 = c>> b; // 4 (00000000000000000000000000000100) console.log(result); // -1 (11111111111111111111111111111111) console.log(result1); 

JavaScript Zero-Fill-Rechtsverschiebung

Die Null-Rechts-Verschiebung >>>verschiebt den Operanden nach rechts, indem die Null-Bits nach links gefüllt werden. Überschüssige Bits von rechts werden verworfen.

Eine Bit-Rechtsverschiebung mit Nullfüllung in JavaScript

Beispielsweise,

 let a = 8; let b = 1; let c = -3; result = a>>> b; result1 = c>>> b; // 4 (00000000000000000000000000000100) console.log(result); // 1073741823 (00111111111111111111111111111111) console.log(result);

Interessante Beiträge...