在python中,我想计算表示无符号数所需的位数。例如:
2 --> 2 bits
3 --> 2 bits
10 --> 4 bits
我只是按照以下len( bin( n ) ) - 2
还有其他更好的计算方法吗?纯粹使用位操作,以便我也可以在其他语言上使用它?
答案 0 :(得分:2)
最简单的方法是使用int
类型的.bit_length()
方法:
>>> for n in (2, 10):
... print(n.bit_length())
...
2
4
如果您想自己动手,可以使用以下功能:
def bit_length(n):
bits = 0
while n:
bits += 1
n >>= 1
return bits
答案 1 :(得分:2)
如果你真的想做一点,那么
count=0
while(n!=0):
n=n>>1
count+=1