Описание

BigUint — расширение jCjS: объектная обёртка над беззнаковым 64-битным целым числом quint64. Тип сохраняет большие неотрицательные значения без потери точности Number.

Назначение

Предназначен для точной работы со значениями от 0 до 2⁶⁴−1, беззнаковыми идентификаторами, масками, счётчиками, BigUint64Array и полями DataView.

BigUint отсутствует в стандартном JavaScript и является дополнением jCjS. Он имеет фиксированную разрядность 64 бита. Движок ES5 не поддерживает литералы 1n; используйте десятичные строки, например BigUint("18446744073709551615"), и объектные методы арифметики.


Конструктор

BigUint(value)
Функция вызывается без new. value — десятичная строка, Number, BigUint или BigInt. Для значений за пределами безопасного диапазона Number обязательно используйте строку. Внутри строки допустим завершающий символ n, но рекомендуемая форма — BigUint("123"). Вызов с new создаёт TypeError.

Пример использования

// Строковая форма повторяет безопасный способ создания большого целого из MDN.
var mask = BigUint("18446744073709551615");
var lowByte = mask.and(BigUint("255"));
post.log('' + lowByte.toString(16)); // ff


Свойства (property)

Сигнатура Описание
BigUint.ZERO, ONE, MIN, MAX Объекты-константы: ZERO = MIN = 0, ONE = 1, MAX = 18446744073709551615. Только чтение.
int BITS Разрядность значения: 64. Свойство конструктора, только чтение.
int BYTES Размер значения: 8 байт. Свойство конструктора, только чтение.


Сигналы

не имеет



Функции

Сигнатура Описание
bool isBigInt(value), bool isBigUint(value) Проверить, является ли аргумент объектом BigInt или BigUint jCjS. Методы доступны у конструктора и экземпляра.
BigUint add(value), sub(value), mul(value) Вернуть новое беззнаковое 64-битное значение — сумму, разность или произведение.
BigUint div(value) Вернуть результат целочисленного деления. Деление на ноль создаёт RangeError.
BigUint mod(value) Вернуть остаток от деления. Деление по модулю нуля создаёт RangeError.
BigUint shl(bits), BigUint shr(bits) Вернуть результат беззнакового побитового сдвига влево или вправо.
BigUint and(value), or(value), xor(value) Вернуть результат побитового И, ИЛИ либо исключающего ИЛИ.
BigUint not([value]) Инвертировать все 64 бита текущего значения; если передан value, инвертировать value.
bool eq(value), ne(value), lt(value), le(value), gt(value), ge(value) Сравнить текущее значение с value: равно, не равно, меньше, меньше либо равно, больше, больше либо равно.
String toString(int radix = 10) Вернуть строку в системе счисления radix от 2 до 36. При недопустимом основании используется 10.
Number|String valueOf() Вернуть Number, если значение представимо им точно; иначе десятичную строку.
QVariant toVariant() Вернуть QVariant, сохраняющий исходное беззнаковое 64-битное значение.
Number|String toJSON() Вернуть точное Number либо десятичную строку, пригодную для сериализации JSON.