计算所需的位数

时间:2010-11-19 19:33:47

标签: bit-manipulation bits

我需要帮助

我被问到对于1到10亿的无符号整数范围,需要多少位!

我们如何计算?

谢谢

UPDATE !!!!

这是我想知道的,因为这位干预者说 17

3 个答案:

答案 0 :(得分:6)

取10亿的记录基数并向上舍入。

或者,您应该知道整数(超过40亿个值)需要32位,因此对于20亿,您需要31位和10亿,30位。

要知道的另一个方便的事情是,每10位增加的值可以表示超过1000(1024),因此对于1000,您需要10位,100万需要20位,以及10亿需求30位。

答案 1 :(得分:3)

计算log2(1000000000)并将其四舍五入。它可以达到30位。

例如在Python中,您可以像这样计算:

>>> import math
>>> math.ceil(math.log(1000000000, 2))
30.0

答案 2 :(得分:2)

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位