我需要帮助
有人问我,对于 1 到 10 亿的无符号整数范围,需要多少位!
我们如何计算这个?
谢谢
更新!!!!
这是我想知道的,因为面试官说17
取 10 亿的对数底数 2 并向上取整。
或者,您应该知道整数(超过 40 亿个值)需要 32 位,因此 20 亿需要 31 位,10 亿需要 30 位。
要知道的另一件方便的事情是,每 10 位会使您可以表示的值的数量增加 1000 多倍(1024),因此对于 1000,您需要 10 位,100 万需要 20 位,10 亿需要 30 位。
计算log2(1000000000)
并四舍五入。它可以达到 30 位。
例如,在 Python 中,您可以这样计算:
>>> import math
>>> math.ceil(math.log(1000000000, 2))
30.0
2^10 = 1024
2^10 * 2^10 = 2^20 = 1024*1024 = 1048576
2^10 * 2^10 * 2^10 = 2^30 = 3 * 1024 ~= 1,000,000
=> 30 位