< <在這段代碼中做了什麼?「<<」在C#中代表什麼?
[Serializable]
[Flags]
public enum SiteRoles
{
User = 1 << 0,
Admin = 1 << 1,
Helpdesk = 1 << 2
}
< <在這段代碼中做了什麼?「<<」在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,和右位位移作爲由兩個分頻。因爲它們所傳達的語義更好地與位掩碼工作時,他們是(在x86上至少),比乘
+1,對於評論示例! – 2010-01-26 10:28:09
是否應該將移位,乘法或加法決定留給JITter? – Joey 2011-12-22 10:18:16
這是一個位轉變更快
Bitshifts是有用的。
Admin = 1 << 1
表示一個人的二進制值左移一位。
結果是
Admin = 2
http://msdn.microsoft.com/en-us/library/6a71f45d%28VS.71%29.aspx – UpTheCreek 2010-01-26 09:10:07
這裏:HTTP://計算器。 com/questions/2134204/multiple-ways-to-define-c-enums-with-flags-attribute/ – 2010-01-26 09:12:55