int.bit_length() și int.bit_count() în Python

Numere și matematică Python 3.1+ (bit_count: 3.10+)

Câți biți sunt necesari pentru a scrie un număr și câți dintre ei sunt 1.

Sintaxă
n.bit_length()
n.bit_count()

Ce face int.bit_length() și int.bit_count()

bit_length() returnează numărul de biți necesari pentru a scrie numărul în binar, fără semn și fără zerouri în față. bit_count() (Python 3.10+) numără biții cu valoarea 1 (numită și „pondere Hamming”).

Pentru numere negative, ambele lucrează cu valoarea absolută.

Ce returnează

Un număr întreg.

Exemple

Exemplul 1: Biții unui număr

for n in [0, 5, 255, 256, -37]:
    print(n, bin(n), n.bit_length(), n.bit_count())
print((2 ** 100).bit_length())

Rezultat

0 0b0 0 0
5 0b101 3 2
255 0b11111111 8 8
256 0b100000000 9 1
-37 -0b100101 6 3
101

Greșeli frecvente

  • Folosești len(bin(n)) ca număr de biți și uiți că textul include prefixul 0b (și semnul).

Comenzi înrudite