BigInt.asUintN()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.

Die statische Methode BigInt.asUintN() kürzt einen BigInt-Wert auf die angegebene Anzahl signifikanter Bits und gibt diesen Wert als nicht signierte Ganzzahl zurück.

Probieren Sie es aus

Syntax

js
BigInt.asUintN(bits, bigint)

Parameter

bits

Die Anzahl der Bits, die für den zurückgegebenen BigInt zur Verfügung stehen. Sollte eine ganze Zahl zwischen 0 und 253 - 1 sein, einschließlich.

bigint

Der BigInt-Wert, der gekürzt werden soll, um in die angegebenen Bits zu passen.

Rückgabewert

Der Wert von bigint Modul 2^bits, als nicht signierte Ganzzahl.

Ausnahmen

RangeError

Wird ausgelöst, wenn bits negativ ist oder größer als 253 - 1.

Beschreibung

Die Methode BigInt.asUintN kürzt einen BigInt-Wert auf die angegebene Anzahl von Bits und interpretiert das Ergebnis als nicht signierte Ganzzahl. Nicht signierte Ganzzahlen haben keine Vorzeichenbits und sind immer nicht negativ. Zum Beispiel wird bei BigInt.asUintN(4, 25n) der Wert 25n auf 9n gekürzt:

25n = 00011001 (base 2)
         ^==== Use only the four remaining bits
===>      1001 (base 2) = 9n

Note: BigInt-Werte werden immer als Zweierkomplement in Binärform kodiert.

Anders als ähnliche Sprach-APIs wie Number.prototype.toExponential() ist asUintN eine statische Eigenschaft von BigInt, sodass Sie es immer als BigInt.asUintN() verwenden und nicht als Methode eines BigInt-Wertes. Das Bereitstellen von asUintN() als "Standardbibliotheksfunktion" ermöglicht Interop mit asm.js.

Beispiele

Im 64-Bit-Bereich bleiben

Die Methode BigInt.asUintN() kann nützlich sein, um im Bereich der 64-Bit-Arithmetik zu bleiben.

js
const max = 2n ** 64n - 1n;

BigInt.asUintN(64, max); // 18446744073709551615n

BigInt.asUintN(64, max + 1n); // 0n
// zero because of overflow: the lowest 64 bits are all zeros

Spezifikationen

Specification
ECMAScript Language Specification
# sec-bigint.asuintn

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch