Spec-Zone.ru › JavaScript

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

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-bigint.asuintn

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
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

См. также

  • BigInt
  • BigInt.asIntN()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API