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