python中整数的长度_Python中正整数的位长度
1 = 0b1 -> 1
5 = 0b101 -> 3
10 = 0b1010 -> 4
100 = 0b1100100 -> 7
1000 = 0b1111101000 -> 10
…
如何獲取整數(shù)的位長(zhǎng)度,即在python中表示正整數(shù)所需的位數(shù)?
int.bit_length():返回用二進(jìn)制表示整數(shù)所需的位數(shù),不包括符號(hào)和前導(dǎo)零。docs.python.org/2/library/…
@其中一個(gè)是popcount(設(shè)置位的數(shù)目)。
在python 2.7+中,有一個(gè)int.bit_length()方法:
>>> a = 100
>>> a.bit_length()
7
>>> len(bin(1000))-2
10
>>> len(bin(100))-2
7
>>> len(bin(10))-2
4
號(hào)
注:對(duì)于負(fù)數(shù)無(wú)效,可能需要減去3而不是2。
但這不適用于負(fù)數(shù)(與日志版本相反,它也不會(huì)在負(fù)數(shù)上失敗)
你說(shuō)得對(duì)@killiands,我加了個(gè)便條
如果你關(guān)心的是負(fù)數(shù),那就做len(bin(abs(n)))-2。
更重要的是,這對(duì)0來(lái)說(shuō)是失敗的。
另一種方法是做len("{:b}".format(x)),以避免不得不做減法。
如果您的python版本有它(≥2.7對(duì)于p
總結(jié)
以上是生活随笔為你收集整理的python中整数的长度_Python中正整数的位长度的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux 目录管理类命令
- 下一篇: 数学分析:据理说明为什么每一个含有第一类