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