Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

BigInt.asUintN()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2020 browserübergreifend verfügbar.

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

Probieren Sie es aus

const U64_CEIL = 2n ** 64n;

console.log(BigInt.asUintN(64, U64_CEIL - 1n));
// 18446744073709551615n (2n ** 64n - 1n, the maximum non-wrapping value)
console.log(BigInt.asUintN(64, U64_CEIL));
// 0n (wraps to zero)
console.log(BigInt.asUintN(64, U64_CEIL + 1n));
// 1n
console.log(BigInt.asUintN(64, U64_CEIL * 2n));
// 0n (wraps on multiples)
console.log(BigInt.asUintN(64, U64_CEIL * -42n));
// 0n (also wraps on negative multiples)

Syntax

js
BigInt.asUintN(bits, bigint)

Parameter

bits

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

bigint

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

Rückgabewert

Ein BigInt, das die Bitdarstellung von bigint enthält, gekürzt auf bits Bits, interpretiert als vorzeichenlose Ganzzahl.

Ausnahmen

RangeError

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

Beschreibung

Die Methode BigInt.asUintN kürzt einen BigInt-Wert auf die angegebene Anzahl von Bits und interpretiert das Ergebnis als vorzeichenlose Ganzzahl. Vorzeichenlose Ganzzahlen haben keine Vorzeichenbits und sind immer nicht negativ. Zum Beispiel wird für 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

Hinweis: BigInt-Werte werden immer im Zweierkomplement in Binärform kodiert.

Im Gegensatz zu ähnlichen Sprach-APIs wie Number.prototype.toExponential() ist asUintN eine statische Eigenschaft von BigInt, daher wird sie immer als BigInt.asUintN() verwendet und nicht als Methode eines BigInt-Werts. Die Bereitstellung von asUintN() als "Standardbibliotheksfunktion" ermöglicht Interoperabilität 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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-bigint.asuintn

Browser-Kompatibilität

Siehe auch