Метод toUnsigned
- int width
Возвращает наименее значимые width биты этого большого целого числа как неотрицательное число (т.е. представление без знака). Возвращаемое значение имеет нули во всех позициях битов выше width.
BigInt.from(-1).toUnsigned(5) == 31 // 11111111 -> 00011111
Эта операция может быть использована для моделирования арифметики из языков низкого уровня. Например, для инкремента 8-битной величины:
q = (q + 1).toUnsigned(8);
q будет считать от 0 до 255, а затем перевернётся до 0.
Если входное значение помещается в width бит без усечения, результат будет таким же, как и входное значение. Минимальная ширина, необходимая для избежания усечения x , задаётся значением x.bitLength, т.е.
x == x.toUnsigned(x.bitLength);
Реализация
BigInt toUnsigned(int width);
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/BigInt/toUnsigned.html