1 = 0b1 ->1
5 = 0b101 ->3
10 = 0b1010 ->4
100 = 0b1100100 ->7
1000 = 0b1111101000 ->10
…
如何获取整数的位长度,即在python中表示正整数所需的位数?
int.bit_length():返回用二进制表示整数所需的位数,不包括符号和前导零。docs.python.org/2/library/…
@其中一个是popcount(设置位的数目)。
在python 2.7+中,有一个int.bit_length()方法:
>>>a = 100
>>>a.bit_length()
7
>>>len(bin(1000))-2
10
>>>len(bin(100))-2
7
>>>len(bin(10))-2
4
号
一般应用场景都不用考虑这个大小,因为这个上限很高,需要用到这么多元素的list的时候,都需要考虑很多其它问题。1,32位python的限制是 536870912 个元素。
2,64位python的限制是 1152921504606846975 个元素。