什么<<在这段代码中做什么?
[Serializable]
[Flags]
public enum SiteRoles
{
User = 1 << 0,
Admin = 1 << 1,
Helpdesk = 1 << 2
}
答案 0 :(得分:7)
答案 1 :(得分:7)
这意味着左移位,所以:
int i = 1 << 2;
// 0000 0001 (1)
// shifted left twice
// 0000 0100 (4)
左移位类似于乘以2,而右移位则除以2。
Bitshifts非常有用,因为它们在使用位掩码时可以更好地传达语义,并且它们(至少在x86上)比乘法更快
答案 2 :(得分:5)
Bitshifting就像在C ++中一样
答案 3 :(得分:1)
答案 4 :(得分:-2)
这是一个按位移位。
Admin = 1 << 1
表示一个二进制值向左移动一位。
结果是
Admin = 2