Python 3.1+Числа и математикафункция
int.bit_length
биты
Возвращает количество бит, необходимых для записи модуля числа в двоичном виде (без знака и ведущих нулей); у нуля — 0.
Синтаксис
n.bit_length()
У отрицательных берётся модуль, так что знак на результат не влияет. Для n > 0 это ровно floor(log2(n)) + 1, но, в отличие от math.log2, считается точно: log2 сначала переводит число во float, и для 2**64 - 1 получается ровно 64.0 — формула ошибётся на единицу, а bit_length вернёт верные 64.
Примеры
print((255).bit_length()) # → 8
print((1024).bit_length()) # → 11
print((0).bit_length()) # → 0
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности