1
我讀一些開源代碼和經常遇到變量聲明這樣的:爲什麼要用shift運算符聲明變量?
private static final int MAX_LITERAL = 1 << 5;
這是2^5(32),並且是更可讀對某些人來說爲「32」而不是「1 <聲明< 5「。爲什麼使用位移算符完成任何很好的解釋?
我讀一些開源代碼和經常遇到變量聲明這樣的:爲什麼要用shift運算符聲明變量?
private static final int MAX_LITERAL = 1 << 5;
這是2^5(32),並且是更可讀對某些人來說爲「32」而不是「1 <聲明< 5「。爲什麼使用位移算符完成任何很好的解釋?
這是出於可讀性的目的,最有可能的是這個數字用於位運算。
雖然它的確是32,但如果你不認爲它是32
,但是你會看到推理a number with the fifth bit set, and the others unset
。
我使用它的各種常量,例如緩衝區大小。它強調我正在使用「圓」數字(二進制),這在許多情況下都是好事。 –
該操作顯示數字的設計方式。也許它被用於位操作? –
但爲什麼不直接寫'0b00100000'? –
我已經投票結束 - 這個問題將引發辯論不實際的答案。 –