Baseline Widely available
Die statische Methode BigInt.asIntN()
kürzt einen BigInt
-Wert auf die gegebene Anzahl am wenigsten signifikanter Bits und gibt diesen Wert als Vorzeichen-Integer zurück.
const I64_CEIL = 2n ** 63n;
console.log(BigInt.asIntN(64, I64_CEIL - 1n));
// 9223372036854775807n (2n ** 64n - 1n, the maximum non-wrapping value)
console.log(BigInt.asIntN(64, I64_CEIL));
// -9223372036854775808n (wraps to min value)
console.log(BigInt.asIntN(64, I64_CEIL + 1n));
// -9223372036854775807n (min value + 1n)
console.log(BigInt.asIntN(64, I64_CEIL * 2n));
// 0n (wrapped around to zero)
console.log(BigInt.asIntN(64, -I64_CEIL * -42n));
// 0n (also wraps on negative multiples)
Syntax
BigInt.asIntN(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 sein, einschlieÃlich.
bigint
Der BigInt-Wert, der gekürzt wird, um in die angegebenen Bits zu passen.
Der Wert von bigint
modulo 2 ** bits
, als Vorzeichen-Integer.
RangeError
Wird ausgelöst, wenn bits
negativ oder gröÃer als 253 - 1 ist.
Die Methode BigInt.asIntN
kürzt einen BigInt
-Wert auf die gegebene Anzahl von Bits und interpretiert das Ergebnis als Vorzeichen-Integer. Zum Beispiel wird bei BigInt.asIntN(3, 25n)
der Wert 25n
auf 1n
gekürzt:
25n = 00011001 (base 2) ^=== Use only the three remaining bits ===> 001 (base 2) = 1n
Wenn das führende Bit der verbleibenden Zahl 1
ist, ist das Ergebnis negativ. Zum Beispiel ergibt BigInt.asIntN(4, 25n)
-7n
, da 1001
die Kodierung von -7
im Zweierkomplement ist:
25n = 00011001 (base 2) ^==== Use only the four remaining bits ===> 1001 (base 2) = -7n
Hinweis: BigInt
-Werte werden immer als Zweierkomplement binär kodiert.
Im Gegensatz zu ähnlichen Sprach-APIs wie Number.prototype.toExponential()
, ist asIntN
eine statische Eigenschaft von BigInt
, daher wird sie immer als BigInt.asIntN()
verwendet, und nicht als Methode eines BigInt-Werts. Die Bereitstellung von asIntN()
als "Standardbibliotheksfunktion" ermöglicht Interoperabilität mit asm.js.
Die Methode BigInt.asIntN()
kann nützlich sein, um im Bereich der 64-Bit-Arithmetik zu bleiben.
const max = 2n ** (64n - 1n) - 1n;
BigInt.asIntN(64, max); // 9223372036854775807n
BigInt.asIntN(64, max + 1n); // -9223372036854775808n
// negative because the 64th bit of 2^63 is 1
Spezifikationen Browser-Kompatibilität Siehe auch
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