C#中两个左尖括号“<<”是什么意思?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (101)

我在看MVC 2的源代码:

[Flags]
public enum HttpVerbs {
    Get = 1 << 0,
    Post = 1 << 1,
    Put = 1 << 2,
    Delete = 1 << 3,
    Head = 1 << 4
}

我只是好奇双左角括号<<是什么。

提问于
用户回答回答于

这将是左移位运算符。

对于每个左移,该值实际上乘以2. 例如,写入value << 3将乘以8。

它在内部真正做的是把所有剩下的值的实际位移到一个地方。所以,如果你有值12(十进制),在二进制是00001100; 把它移到一个地方会变成00011000,或者24。

用户回答回答于

当你写

1 << n

你将位组合转换000000001n剩下的时间,从而放入n2的指数:

2^n

所以

1 << 10

真正的是

1024

对于说5项的列表,你for会循环32次。

扫码关注云+社区

领取腾讯云代金券