2017-05-17 66 views
0

有一種簡單的方法來計算:如何計算2^H *小區(I/2 1 2 H)

(2^h)*ceil(i/(2^h)) 

其中i和h是整數,沒有明確使用上限的功能?

例如,對於(2^H)*地板(I /(2^H))可以使用類似

i&-(1<<h) 

不使用地板函數計算。

+0

@Dijkgraaf java –

回答

0

顯然你的意思是用^指數而不是按位異或。所以像

(i + (1 << h) - 1) & (-1 << h) 

應該工作。

+0

我們不能在那裏使用'-1 << h'並保存操作嗎? – harold

+0

@harold是的,這應該也可以。 – Henry

+0

對不起,您能否更新答案以包含@harold提到的內容? –