【问题标题】:Why declare variables with shift operator? [closed]为什么用移位运算符声明变量? [关闭]
【发布时间】:2013-07-04 19:26:16
【问题描述】:

我阅读了一些开源代码,经常遇到这样的变量声明:

private static final int MAX_LITERAL = 1 << 5;

这是 2^5 (32),对于某些人来说,将其声明为“32”比“1

【问题讨论】:

  • 该操作显示了数字是如何设计的。也许它被用于位操作?
  • 但是为什么不直接写0b00100000呢?
  • 我已投票结束 - 这个问题将引发辩论而不是事实答案。
  • @ImreKerr 0b00010000000000000000 呢?你能说在这种情况下设置了哪个位吗?
  • @ImreKerr 这仅从 Java 7 开始受支持,想象一下“解码” 1

标签: java variable-assignment


【解决方案1】:

出于可读性目的,该数字很可能用于按位运算。

虽然确实是32,但如果你不认为它是32,而是a number with the fifth bit set, and the others unset,也许你会明白其中的道理。

【讨论】:

  • 我将它用于各种常量,例如缓冲区大小。它强调我使用的是“整数”(二进制),这在许多情况下都是一件好事。
猜你喜欢
  • 2023-03-24
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-11
相关资源
最近更新 更多