2010-11-19 72 views
0

我需要此幫助計算所需的位

我被問到無符號整數範圍是1到10億,需要多少位!

我們該如何計算?

謝謝

UPDATE !!!!

這是我想知道,因爲interviwer說

+1

2迷惑你哪一部分基地?你能更具體地說明你無法弄清楚什麼嗎? – 2010-11-19 19:36:37

+3

如果你的面試官說17,那麼他要麼顯然是錯的,要麼你沒有給我們整個問題。 – 2010-11-19 19:38:32

+0

你的面試官是白癡,或者你錯誤地提出了這個問題。 17位將得到你從0到131071的任何數字。如果你從1開始,你可以表示數字高達131072. – nmichaels 2010-11-19 19:40:14

回答

3

計算log2(1000000000)和圓形它。它可以達到30位。

例如,在Python中,你可以這樣計算的話:

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

取1十億日誌基地2和圍捕。

或者,您應該知道整數(超過40億個值)需要32位,因此對於20億您需要31位和10位,30位。

另一個方便的事情要知道,每10位增加的數量可以表示一個因素剛剛超過1000(1024),因此,對於1000,你需要10位,100萬需要20位和10億需要30位。

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位