2013-07-04 51 views
1

我讀一些開源代碼和經常遇到變量聲明這樣的:爲什麼要用shift運算符聲明變量?

private static final int MAX_LITERAL = 1 << 5; 

這是2^5(32),並且是更可讀對某些人來說爲「32」而不是「1 <聲明< 5「。爲什麼使用位移算符完成任何很好的解釋?

+3

該操作顯示數字的設計方式。也許它被用於位操作? –

+0

但爲什麼不直接寫'0b00100000'? –

+0

我已經投票結束 - 這個問題將引發辯論不實際的答案。 –

回答

3

這是出於可讀性的目的,最有可能的是這個數字用於位運算。

雖然它的確是32,但如果你不認爲它是32,但是你會看到推理a number with the fifth bit set, and the others unset

+0

我使用它的各種常量,例如緩衝區大小。它強調我正在使用「圓」數字(二進制​​),這在許多情況下都是好事。 –

相關問題