什么是“<<”代表C#?

时间:2010-01-26 09:07:49

标签: c#

什么<<在这段代码中做什么?

[Serializable]
[Flags]
public enum SiteRoles
{
    User = 1 << 0,
    Admin = 1 << 1,
    Helpdesk = 1 << 2
}

5 个答案:

答案 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