A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Left_shift below:

Linksverschiebung (<<) - JavaScript | MDN

Der <<-Operator ist für zwei Typen von Operanden überladen: Zahl und BigInt. Für Zahlen gibt der Operator einen 32-Bit-Integer zurück. Für BigInts gibt der Operator einen BigInt zurück. Er setzt zuerst beide Operanden auf numerische Werte um und prüft dann die Typen der Operanden. Führt BigInt-Linksverschiebung aus, wenn beide Operanden BigInts werden; andernfalls werden beide Operanden in 32-Bit-Integer umgewandelt und die Zahl wird links verschoben. Ein TypeError wird ausgelöst, wenn ein Operand zu einem BigInt wird, aber der andere zu einer Zahl.

Der Operator arbeitet auf der Bitdarstellung des linken Operanden in Zweierkomplement. Zum Beispiel ergibt 9 << 2 36:

     9 (base 10): 00000000000000000000000000001001 (base 2)
                  --------------------------------
9 << 2 (base 10): 00000000000000000000000000100100 (base 2) = 36 (base 10)

Bitweises Verschieben eines 32-Bit-Integer x nach links um y Bits ergibt x * 2 ** y. Beispielsweise ist 9 << 3 äquivalent zu 9 * (2 ** 3) = 9 * (8) = 72.

Wenn der linke Operand eine Zahl mit mehr als 32 Bits ist, werden die höchstwertigen Bits verworfen. Zum Beispiel wird der folgende Integer mit mehr als 32 Bits in einen 32-Bit-Integer umgewandelt:

Before: 11100110111110100000000000000110000000000001
After:              10100000000000000110000000000001

Der rechte Operand wird in einen unsignierten 32-Bit-Integer umgewandelt und dann modulo 32 genommen, sodass der tatsächliche Verschiebungswert immer eine positive Ganzzahl zwischen 0 und 31, einschließlich, ist. Zum Beispiel ist 100 << 32 dasselbe wie 100 << 0 (und ergibt 100), weil 32 modulo 32 gleich 0 ist.

Warnung: Sie könnten Leute sehen, die << 0 verwenden, um Zahlen auf Ganzzahlen zu kürzen. Das Linksverschieben einer beliebigen Zahl x um 0 gibt x zurück, umgewandelt in einen 32-Bit-Integer, was zusätzlich führende Bits für Zahlen außerhalb des Bereichs von -2147483648 bis 2147483647 entfernt. Verwenden Sie stattdessen Math.trunc().

Für BigInts gibt es keine Kürzung. Konzeptuell verstehen Sie positive BigInts als unendlich viele führende 0-Bits und negative BigInts als unendlich viele führende 1-Bits.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4