python-3.x - Python函数返回最大可能的64位数

有没有python 3函数可以返回最大数量的N位?

例如:


>>> print(largest_bitsize(8))


255


>>> print(largest_bitsize(16))


65535



时间:

计算最大n位数的一种更有效的方法是使用逐位移位(bitwise shift)和否定(negation),这个开销是O(1):


def largest_bitsize(n):


 return ~(-1 << n)



我不认为有内置的,但是自己写很容易。2N始终是需要N+1位的最小数,因此(2^N )1必须是需要N位的最大数。


def largest_bitsize(n):


 return 2**n - 1



print(largest_bitsize(8))


#result: 255



print(largest_bitsize(16))


#result: 65535



print(largest_bitsize(64))


#result: 18446744073709551615



使用位移位(指数相反)实现更快速的性能:


def largest_bitsize(b):


 return (1 << b) - 1



这个?


def largest_bitsize(n):


 return int('1' * n, 2)



例如:


>>> int('1'*16, 2)


65535


>>> int('1'*64, 2)


18446744073709551615



我认为没有任何BuiltIn可用,但你可以试试这个。


def largest_bitsize(b):


 return (2**b) - 1



输出:-


>>> largest_bitsize(64)



18446744073709551615



以下是有效方法:


def largest_bitsize( n ):


 return sum( [ 2 ** i for i in range( n ) ] )



...