gpt4 book ai didi

python - 存储 n 个整数所需的最小、最大位数

转载 作者:行者123 更新时间:2023-12-02 21:46:17 25 4
gpt4 key购买 nike

我的老师做了一个例子,他向我们展示了一些示例输出,我试图弄清楚他是如何得到这些数字的。这是他的示例输出

          unsigned     max value  max value
number b bits b-1 bits b bits
2 2 1 3
10 4 7 15
20 5 15 31
100 7 63 127
1000 10 511 1023
999999 20 524287 1048575

他说他发现了将 n 存储为无符号整数所需的最小位数 b• 可使用 b − 1 位存储的最大无符号整数• 可使用 b 位存储的最大无符号整数

是否有一个公式可以做到这一点,因为我似乎无法识别该模式

最佳答案

使用int.bit_length() :

>>> (999999).bit_length()
20
>>> b = (999999).bit_length()
>>> 1 << b
1048576
>>> (1 << b) - 1
1048575

或使用 log2:

>>> import math
>>> math.ceil(math.log(999999, 2))
20.0

或使用二进制表示:

>>> format(999999, 'b')
'11110100001000111111'
>>> len(format(999999, 'b'))
20
>>> int('1' * 20, 2)
1048575

>>> bin(999999)
'0b11110100001000111111'
>>> len(bin(999999)) - 2
20

关于python - 存储 n 个整数所需的最小、最大位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19474046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com