【发布时间】:2013-07-27 02:58:47
【问题描述】:
我正在查看我目前在我的项目中的代码,发现如下内容:
public enum MyEnum
{
open = 1 << 00,
close = 1 << 01,
Maybe = 1 << 02,
........
}
<< 操作数是移位操作数,它将第一个操作数左移第二个操作数中指定的位数。
但是为什么有人会在enum 声明中使用它呢?
【问题讨论】:
-
@GrantWinney(不是我的近距离投票)但我明白它是如何“基于意见”的,因为问题本质上是“为什么有人在
0x04更易读时使用1 << 2我”。 -
我从来没有说过 0x04 更具可读性,我也没有比较两者。该问题的目的是了解此语句的副作用(= 能够组合标志)
-
Oscar,您的帖子没有任何问题(我认为这对于学习使用任何 C/C++/C#/Java/JavaScript 进行编码的人很有用)。但是不同的人阅读相同文本的方式不同——我只是用我的阅读方式来解释投票结束。
-
我会小心在位移前加一个前导零 - 如果没有
8或9那么文字不会被解释为八进制吗?这可能需要一两个小时的调试时间。 -
如果你知道 C: 阅读 - What is the meaning of this declaration?