我读了一些开源代码,经常遇到如下变量声明:
private static final int MAX_LITERAL = 1 << 5;
这是2 ^ 5(32)并且对于某些人来说可以更可读地声明为“32”而不是“1&lt;&lt; 5”。使用位移算子完成原因的任何一个很好的解释?
答案 0 :(得分:3)
出于可读性目的,很可能该数字用于按位运算。
虽然它确实是32,但如果您不将其视为32
,而是将其视为a number with the fifth bit set, and the others unset
,则可能会看到推理。