Свойство bitLength
Возвращает минимальное количество бит, необходимое для хранения этого большого целого числа.
Количество бит не включает бит знака, что даёт естественную длину для неотрицательных (безопасных) значений. Отрицательные значения дополняются до возврата позиции бита, первого отличающегося от бита знака.
Чтобы найти количество бит, необходимых для хранения значения как знакового значения, добавьте единицу, т.е. используйте x.bitLength + 1.
x.bitLength == (-x-1).bitLength; BigInt.from(3).bitLength == 2; // 00000011 BigInt.from(2).bitLength == 2; // 00000010 BigInt.from(1).bitLength == 1; // 00000001 BigInt.from(0).bitLength == 0; // 00000000 BigInt.from(-1).bitLength == 0; // 11111111 BigInt.from(-2).bitLength == 1; // 11111110 BigInt.from(-3).bitLength == 2; // 11111101 BigInt.from(-4).bitLength == 2; // 11111100
Реализация
int get bitLength;
© 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/bitLength.html