Einführung in bitweise Operatoren in JavaScript

Die bitweisen Operatoren in JavaScript wirken sich auf ihren Operanden aus, indem sie sie in ihrer Darstellungsform für Binärzahlen (Basis 2) (insbesondere in Form von 32-Bit-Zahlen) und nicht in ihrer Dezimalzahl (Basis 10) oder Oktalzahl (Basis 8) bearbeiten., oder Hexadezimalzahl (Basis 16). Beispielsweise ist 1010 die binäre Darstellung der Dezimalzahl zehn. Bitweise Operationen in JavaScript werden an den Operanden der Operatoren in ihren Binärdarstellungen ausgeführt, die Ausgabe wird jedoch immer in der numerischen Standardwertform zurückgegeben.

Ein bitweiser Operator in JavaScript konvertiert seine Operanden in die Zweierkomplementform seiner 32-Bit-Ganzzahl mit Vorzeichen. Wenn also ein Operator an einer Ganzzahl arbeitet, ist der Ableitungswert die Zweierkomplementform dieser Ganzzahl. Das 2er-Komplement einer ganzen Zahl ist das 1er-Komplement der Zahl (dh des bitweisen Nicht der Zahl) plus 1.

Das Folgende ist beispielsweise die 32-Bit-Darstellung der Zahl 7

000000000000000000000000000111

Das Folgende ist 1 'Komplement, dh ~ 7

11111111111111111111111111111000

Das Folgende ist die Zweierkomplementform, die -7 entspricht

11111111111111111111111111111001

Bitweiser OperatorVerwendungBedeutung
Bitweises UNDx & yGibt an jeder Bitposition 1 zurück, wenn beide entsprechenden Bits 1 sind, andernfalls 0.
Bitweises ODERx | yGibt an jeder Bitposition 1 zurück, wenn eines der entsprechenden Bits 1 ist, andernfalls 0.
Bitweises XORx yGibt an jeder Bitposition 0 zurück, wenn beide entsprechenden Bits entweder 1 oder 0 sind, ansonsten 1, wenn sich die Bits unterscheiden.
Bitweise NICHT~ xKippt die Bits des Operanden x von 1 auf 0 und umgekehrt.
Linksverschiebungx << yVerschiebt die Bits auf der Binärzahl x um y Bits nach links, während 0 von rechts gedrückt wird.
Zeichen, das rechte Verschiebung ausbreitetx >> yVerschiebt die Bits auf der Binärzahl x um y Bits nach rechts, während die ganz linken Bits nach links kopiert werden, um 32 Bits zu vervollständigen.
Verschiebung nach rechts auf Null stellenx >>> yVerschiebt die Bits auf der Binärzahl x um y Bits nach rechts, während 0 von links gedrückt wird.

Bitweise logische Operatoren in JavaScript

Bitweise logische Operatoren bestehen aus allen in den meisten Sprachen verwendeten logischen Operatoren, unterscheiden sich jedoch in gewisser Weise, da bitweise logische Operatoren bitweise arbeiten. Die folgenden bitweisen logischen Operatoren werden in JavaScript verwendet:

1. Bitweises UND

Dies ist ein binärer Operator, der durch das kaufmännische Und "&" gekennzeichnet ist und eine UND-Operation für das aufeinanderfolgende Paar entsprechender Bits seiner Argumente ausführt. Der & -Operator würde nur dann 1 zurückgeben, wenn beide Bits 1 sind, andernfalls wird 0 zurückgegeben. Daher können wir auch UND-Operationen mit Multiplikationen korrelieren, da beide die gleiche Antwort geben.

XY.X & Y
000
010
100
111

Beispiel

10 (Basis 10) = 000000000000000000000000001010
13 (Basis 10) = 00000000000000000000000000001101

--------------------------

10 & 13 000000000000000000000000001000 = 8 (Basis 10)

2. Bitweises ODER

Dies ist ein binärer Operator, der durch das Symbol eines vertikalen Strichs "|" gekennzeichnet ist und eine ODER-Verknüpfung für das aufeinanderfolgende Paar entsprechender Bits seiner Argumente ausführt. Der Operator "|" würde 1 zurückgeben, wenn eines der Bits 1 ist oder beide 1 sind, andernfalls wird 0 zurückgegeben. Das bitweise ODER "|" unterscheidet sich vom logischen ODER "||", da es bitweise arbeitet.

XY.X | Y.
000
011
101
111

Beispiel

10 (Basis 10) = 000000000000000000000000001010
13 (Basis 10) = 00000000000000000000000000001101

--------------------------

10 | 13 00000000000000000000000000001111 = 15 (Basis 10)

3. Bitweises XOR

Dies ist ein binärer Operator, der durch das Caret-Symbol "^" gekennzeichnet ist und eine XOR-Operation für das aufeinanderfolgende Paar entsprechender Bits seiner Argumente ausführt. Der Operator "^" würde 0 zurückgeben, wenn beide Bits gleich sind (dh beide sind 1 oder beide sind 0), andernfalls wird 1 zurückgegeben.

XY.X Y
000
011
101
110

Beispiel

10 (Basis 10) = 000000000000000000000000001010
13 (Basis 10) = 00000000000000000000000000001101

--------------------------

10 13 000000000000000000000000000111 = 7 (Basis 10)

4. Bitweise NICHT

Dies ist ein unärer Operator, der durch das Symbol der Tilde "~" gekennzeichnet ist und eine NOT-Operation für die entsprechenden Bits seines Arguments ausführt. Der Operator "~" würde die Bits des Operanden invertieren, dh 0 in 1 oder 1 in 0 konvertieren.

X~ X
01
10

Beispiel

10 (Basis 10) = 000000000000000000000000001010

--------------------------

~ 10 111111111111111111111111110101

Bitweise Verschiebungsoperatoren in JavaScript

Bei der bitweisen Verschiebung werden auch zwei Argumente verwendet, wobei das erste Argument die Binärzahl ist, mit der die Verschiebung ausgeführt wird, und das zweite Argument die Anzahl der Bits angibt, um die das erste Argument verschoben werden muss. Der verwendete Operator gibt die Richtung der Verschiebung in der Binärzahl an.

1. Bitweise Linksverschiebung

Dies ist ein binärer Operator, der mit dem Symbol „<<“ gekennzeichnet ist. Dieser Operator verschiebt die am weitesten rechts stehenden Bits des ersten Arguments um den Wert des zweiten Arguments nach links. Die von rechts verschobenen Bits werden für jede ausgeführte Verschiebungsoperation im äußersten rechten Teil durch 0 ersetzt.

Beispiel: 8 << 3 ergibt 64

8 (Basis 10) = 000000000000000000000000001000

--------------------------

8 << 3 00000000000000000000000001000000 = 64 (Basis 10)

2. Bitweise Rechtsverschiebung

Dies ist ein binärer Operator, der mit dem Symbol ">>>" gekennzeichnet ist. Dieser Operator verschiebt die ganz rechten Bits des ersten Arguments um den Wert des zweiten Arguments nach rechts. Die von links verschobenen Bits werden für jede ausgeführte Verschiebeoperation im äußersten linken Teil durch 0 ersetzt.

Beispiel: 8 >>> 3 ergibt 1

8 (Basis 10) = 000000000000000000000000001000

--------------------------

8 >>> 3 000000000000000000000000000001 = 1 (Basis 10)

-8 (Basis 10) = 111111111111111111111111111000

------------------------

-8 >>> 3 000111111111111111111111111111 = 536870911 (Basis 10)

3. Bitweises Vorzeichen für Rechtsverschiebung

Dies ist ein binärer Operator, der mit dem Symbol ">>" gekennzeichnet ist. Dieser Operator verschiebt die ganz rechten Bits des ersten Arguments um den Wert des zweiten Arguments nach rechts. Die von links verschobenen Bits werden für jede ausgeführte Verschiebeoperation im linken Teil durch das ganz linke Bit (dh das Vorzeichenbit) ersetzt.

Beispiel: 8 >>> 3 ergibt 1

8 (Basis 10) = 000000000000000000000000001000

--------------------------

8 >> 3 000000000000000000000000000001 = 1 (Basis 10)

-8 (Basis 10) = 111111111111111111111111111000

--------------------------

-8 >> 3 111111111111111111111111111111 = -1 (Basis 10)

Fazit

Die Argumente werden in 32-Bit-Binärzahlen umgewandelt und in Form von Bits (dh Nullen und Einsen) ausgedrückt. Zahlen in den Argumenten, die mit mehr als 32 Bits resultieren, werden vom MSB (höchstwertiges Bit) verworfen. Die gleiche Regel gilt, wenn während des Schiebevorgangs die Bitverschiebung nach links und die zusätzlichen Bits bei msb verworfen werden und während der Rechtsverschiebung das im äußersten rechten Teil wachsende zusätzliche Bit verworfen wird.

Vorher: 110011010100011101001000100000001110010010001

------------------------

Nachher: ​​11101001000100000001110010010001

Jedes entsprechende Bit ist miteinander gepaart, dh das erste Bit mit dem ersten Bit anderer Argumente, das zweite Bit mit dem zweiten Bit und so weiter.

Der Operator wird bei jedem Bit angewendet (für den Binäroperator sollte es sich um ein Bitpaar handeln). Daher werden sie in JavaScript als bitweise Operatoren bezeichnet.

Praktische Anwendung von bitweisen Operatoren sind Bit-Flags, Kommunikation über Socket / Ports, Komprimierung, Verschlüsselung, Zustandsautomaten, Grafiken usw.

Empfohlene Artikel

Dies ist eine Anleitung zu bitweisen Operatoren in JavaScript. Hier diskutieren wir die Einführung, Arten von bitweisen Operatoren in JavaScript wie logische Operatoren und Shift-Operatoren sowie deren Operationen. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren.

  1. JavaScript-Compiler
  2. In JavaScript umkehren
  3. Für Schleife in JavaScript
  4. Einführung in JavaScript