BigInt.asUintN()
Базовый уровень Широко доступен
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в версиях браузеров. Она доступна в браузерах с сентября 2020 года.
Статический метод BigInt.asUintN() усекает значение BigInt до заданного количества младших значащих битов и возвращает это значение как беззнаковое целое число.
Попробуйте
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)
Синтаксис
BigInt.asUintN(bits, bigint)
Параметры
-
bits - Количество доступных битов для возвращаемого BigInt. Должно быть целым числом от 0 до 253 - 1 включительно.
-
bigint - Значение BigInt, которое нужно усечь, чтобы оно поместилось в указанные биты.
Возвращаемое значение
BigInt, содержащий битовое представление bigint, усеченное до bits битов, интерпретируемое как беззнаковое целое число.
Исключения
-
RangeError - Выбрасывается, если
bitsотрицателен или больше 253 - 1.
Описание
Метод BigInt.asUintN усекает значение BigInt до заданного количества битов и интерпретирует результат как беззнаковое целое число. Беззнаковые целые числа не имеют знаковых битов и всегда неотрицательны. Например, для BigInt.asUintN(4, 25n) значение 25n усекается до 9n:
25n = 00011001 (base 2)
^==== Use only the four remaining bits
===> 1001 (base 2) = 9n
Примечание: Значения BigInt всегда кодируются как дополнительный код в двоичном представлении.
В отличие от аналогичных API языка, таких как Number.prototype.toExponential(), asUintN является статическим свойством BigInt, поэтому вы всегда используете его как BigInt.asUintN(), а не как метод значения BigInt. Предоставление asUintN() в качестве "функции стандартной библиотеки" обеспечивает совместимость с asm.js.
Примеры
Оставаясь в 64-битных диапазонах
Метод BigInt.asUintN() может быть полезен для оставаясь в диапазоне 64-битной арифметики.
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
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | Bun | Deno | Node.js | |
asUintN |
67 |
79 |
68 |
54 |
14 |
67 |
68 |
48 |
14 |
9.0 |
67 |
14 |
1.0.0 |
1.0 |
10.4.0 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt/asUintN