Heim > Web-Frontend > js-Tutorial > Was sind bitweise Operatoren in Javascript?

Was sind bitweise Operatoren in Javascript?

青灯夜游
Freigeben: 2022-02-16 18:08:25
Original
3531 Leute haben es durchsucht

In JavaScript sind bitweise Operatoren Symbole, die zur Bearbeitung von Binärbits verwendet werden. Die Binärbits können für Operationen von niedrig nach hoch ausgerichtet werden. Die in JavaScript unterstützten bitweisen Operatoren sind: „&“, „|“, „^“, „~“, „>“, „>>>“.

Was sind bitweise Operatoren in Javascript?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

In JavaScript sind bitweise Operatoren Symbole, die zur Bearbeitung binärer Bits verwendet werden.

Bitweise Operatoren können Operationen ausführen, indem sie Binärbits von niedriger zu hoher Ordnung ausrichten.

Die in JavaScript unterstützten bitweisen Operatoren sind in der folgenden Tabelle aufgeführt:

5 >> 1 entspricht 0101 >> Das Ergebnis ist 0010, das Dezimalergebnis ist 2 ganz links Es gibt 7-Bit-Operatoren, unterteilt in zwei Kategorien: Logische Bitoperatoren: bitweises UND (&), bitweises ODER (|), bitweises XOR (^), Nicht-Bit (~)Verschiebungsoperatoren: Linksverschiebung (>), vorzeichenlose Rechtsverschiebung (>>>)
Operator Beschreibung Beispiel
& Bitweises UND: Wenn die entsprechenden Binärbits alle 1 sind, dann die Binärbits Die Bits sind 1 5 & 1, was 0101 & 0001 entspricht. Das Ergebnis ist 0001 und das Dezimalergebnis ist 1
| Bitweises ODER: Wenn eines der entsprechenden Binärbits 1 ist, dann Das Binärbit ist 1 5 |. 1 entspricht 0101 |. Das Ergebnis ist 0101 und das Dezimalergebnis ist 5
^ Bitweises XOR: Wenn nur eines der entsprechenden Binärbits 1 ist, dann das Binärbit ist 1 5 ^ 1 ist äquivalent Bei 0101 ^ 0001 ist das Ergebnis 0100, das Dezimalergebnis ist 4
~ Bitweise NICHT: alle Binärbits invertieren, das heißt, 1 wird in 0 umgewandelt, 0 wird in 1 umgewandelt ~5 entspricht ~0101 und das Ergebnis ist 1010, das Dezimalergebnis ist -6
Bitweise Linksverschiebung: Alle Binärbits um den angegebenen Wert nach links verschieben Anzahl der Ziffern und addieren Sie 0 ganz rechts. 5
5 >>> 1 entspricht 0101 >>> Das Ergebnis ist 0010, das Dezimalergebnis ist 2

    Logische bitweise Operatoren (&, |, ^ und ~)
  • Logische bitweise Operatoren funktionieren auf die gleiche Weise wie logische Operatoren , aber sie zielen auf unterschiedliche Objekte ab. Logische bitweise Operatoren arbeiten mit binären Ganzzahlwerten, während logische Operatoren mit nichtbinären Werten arbeiten.
  • „&“-Operator

Der „&“-Operator (bitweises UND) wird verwendet, um zwei binäre Operanden bitweise zu vergleichen und das Ergebnis gemäß der in der folgenden Tabelle gezeigten Konvertierungstabelle zurückzugeben. Operator „&“

Der Stellenwert der ersten Zahl

Der Stellenwert der zweiten Zahl

Operation. Ergebnis

1 0 10Bei bitweisen Operationen steht der Wert 1 für wahr, 0 für falsch und umgekehrt. 12 und 5 führen eine bitweise UND-Verknüpfung durch und der Rückgabewert ist 4. Die folgende Abbildung analysiert den Prozess der bitweisen UND-Verknüpfung zwischen 12 und 5 in Form einer Gleichung. Durch die bitweise UND-Verknüpfung ist nur der Wert von Bit 3 vollständig wahr, sodass „wahr“ zurückgegeben wird und andere Bits „falsch“ zurückgeben.
1
1 1
0 0
0 0
0
console.log(12 & 5);  //返回值4
Nach dem Login kopieren
„|“-Operator

Der „|“-Operator (Bit-OR) wird verwendet, um zwei binäre Operanden bitweise zu vergleichen und das Ergebnis gemäß der in der Tabelle gezeigten Konvertierungstabelle zurückzugeben.

„|“-Operator

Was sind bitweise Operatoren in Javascript?

Der Stellenwert der ersten Zahl

Der Stellenwert der zweiten Zahl

Operationsergebnis

1 0 10
1
11
10
10
0

12 和 5 进行位或运算,则返回值为 13。

console.log(12 | 5);  //返回值13
Nach dem Login kopieren

下图以算式的形式解析了 12 和 5 进行位或运算的过程。通过位或运算,除第 2 位的值为 false 外,其他位均返回 true。

Was sind bitweise Operatoren in Javascript?

“^”运算符

“^”运算符(位异或)用于对两个二进制操作数逐位进行比较,并根据如表格所示的换算表返回结果。

“^”运算符
第一个数的位值第二个数的位值运算结果
110
101
011
000

12 和 5 进行位异或运算,则返回值为 9。

console.log(12 ^ 5);  //返回值9
Nach dem Login kopieren

下图以算式的形式解析了 12 和 5 进行位异或运算的过程。通过位异或运算,第 1、4 位的值为 true,而第 2、3 位的值为 false。

Was sind bitweise Operatoren in Javascript?

“~”运算符

“~”运算符(位非)用于对一个二进制操作数逐位进行取反操作。

  • 第 1 步:把运算数转换为 32 位的二进制整数。

  • 第 2 步:逐位进行取反操作。

  • 第 3 步:把二进制反码转换为十进制浮点数。

对 12 进行位非运算,则返回值为 -13。

console.log( ~ 12 );  //返回值-13
Nach dem Login kopieren

下图以算式的形式解析了对 12 进行位非运算的过程。

Was sind bitweise Operatoren in Javascript?

位非运算实际上就是对数字进行取负运算,再减 1。例如:

console.log( ~ 12 == 12-1);  //返回true
Nach dem Login kopieren

移位运算符(<<、>>和>>>)

移位运算就是对二进制进行有规律低移位。移位运算可以设计很多奇妙的效果,在图形图像编程中应用广泛。

“<<”运算符

“<<”运算符执行左移位运算。在移位运算过程中,符号位始终保持不变。如果右侧空出位置,则自动填充为 0;超出 32 位的值,则自动丢弃。

把数字 5 向左移动 2 位,则返回值为 20。

console.log(5 << 2);  //返回值20
Nach dem Login kopieren

用算式进行演示,如图所示。

Was sind bitweise Operatoren in Javascript?

“>>”运算符

“>>”运算符执行有符号右移位运算。与左移运算操作相反,它把 32 位数字中的所有有效位整体右移,再使用符号位的值填充空位。移动过程中超出的值将被丢弃。

把数值 1000 向右移 8 位,则返回值为 3。

console.log(1000 >> 8);  //返回值3
Nach dem Login kopieren

用算式进行演示,如图所示。

Was sind bitweise Operatoren in Javascript?

把数值 -1000 向右移 8 位,则返回值为 -4。

console.log(-1000  >> 8);  //返回值 -4
Nach dem Login kopieren

用算式进行演示,如图所示。当符号位值为 1 时,则有效位左侧的空位全部使用 1 进行填充。

Was sind bitweise Operatoren in Javascript?

“>>>”运算符

“>>>”运算符执行五符号右移位运算。它把无符号的 32 位整数所有数位整体右移。对于无符号数或正数右移运算,无符号右移与有符号右移运算的结果是相同的。

下面两行表达式的返回值是相同的。

console.log(1000 >> 8);  //返回值3
console.log(1000 >> 8);  //返回值3
Nach dem Login kopieren

对于负数来说,无符号右移将使用 0 来填充所有的空位,同时会把负数作为正数来处理,所得结果会非常大所以,使用无符号右移运算符时要特别小心,避免意外错误。

console.log(-1000 >> 8);  //返回值 -4
console.log(-1000 >>> 8);  //返回值 16777212
Nach dem Login kopieren

用算式进行演示,如图所示。左侧空位不再用符号位的值来填充,而是用 0 来填充。

Was sind bitweise Operatoren in Javascript?

【相关推荐:javascript学习教程

Das obige ist der detaillierte Inhalt vonWas sind bitweise Operatoren in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage