python中整数的长度_Python中正整数的位长度
生活随笔
收集整理的這篇文章主要介紹了
python中整数的长度_Python中正整数的位长度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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
號
注:對于負數無效,可能需要減去3而不是2。
但這不適用于負數(與日志版本相反,它也不會在負數上失敗)
你說得對@killiands,我加了個便條
如果你關心的是負數,那就做len(bin(abs(n)))-2。
更重要的是,這對0來說是失敗的。
另一種方法是做len("{:b}".format(x)),以避免不得不做減法。
如果您的python版本有它(≥2.7對于p
總結
以上是生活随笔為你收集整理的python中整数的长度_Python中正整数的位长度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 目录管理类命令
- 下一篇: 一个使用python和TUShare进行