2015-11-08 136 views

回答

8

<<移動第一操作數的比特n倍到左側,其中n是第二操作數。

因此1 << Level1Level次的單個1位移位到左側,這相當於計算2^Level。因此i < 1 << Level等於i < Math.pow(2,Level)

3

簡單地說

for (int i = 0; i < 1 << Level; i++) { 
... 
} 

等於

for (int i = 0; i < Math.pow(2,Level); i++) { 
... 
} 

所以,既然你是從0開始計數的for循環會爲「Math.pow(2級)」 跑倍Math.pow(2,級別)-1。

如果電平= 2,則環是

for(int i =0;i<4;i++){} 

如果電平= 3,則環是

for(int i =0;i<8;i++){} 

如果電平= 5則環路是

for(int i =0;i<32;i++){} 
0

在除了其他的答案它可能會幫助把括號圍繞表達式如果不清楚

for (int i = 0; i < (1 << Level); i++) { 
... 
} 

此外,由於Level是,建議將具有小的字母即level,除非它是一個恆定的變量,那麼它應該是LEVEL。我認爲一般來說,可讀性>性能(如果它甚至是一個問題?)。所以Math.pow(2,Level)是更容易理解,如果你不是一個低水平的程序員,看起來更象Java比C