абстрактный метод 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.19.6/dart-core/BigInt/toUnsigned.html