右移運算子 (>>) 將第一個運算元向右移動第二個運算元所指定的位數。
如果第一個運算元為 int 或 uint(32 位數),則移位數由第二個運算元的低五位給出(第二個運算元 & 0x1f)。
如果第一個運算元為 long 或 ulong(64 位數),則移位數由第二個運算元的低六位給出(第二個運算元 & 0x3f)。
如果第一個運算元為 int 或 long,則右移位是算術移位(高序空位設定為符號位)。如果第一個運算元為 uint 或 ulong 型別,則右移位是邏輯移位(高位填充 0)。
使用者定義的型別可過載 >> 運算子;第一個運算元的型別必須為使用者定義的型別,第二個運算元的型別必須為 int。有關更多資訊,請參見 operator。過載二元運算子時,也會隱式過載相應的賦值運算子(如果有)。
具體的使用方法的話:
int i = 8;
Console.WriteLine(i >> 3);
/*
Output:
1
向右移動3位,相當於除以8
*/
右移運算子 (>>) 將第一個運算元向右移動第二個運算元所指定的位數。
如果第一個運算元為 int 或 uint(32 位數),則移位數由第二個運算元的低五位給出(第二個運算元 & 0x1f)。
如果第一個運算元為 long 或 ulong(64 位數),則移位數由第二個運算元的低六位給出(第二個運算元 & 0x3f)。
如果第一個運算元為 int 或 long,則右移位是算術移位(高序空位設定為符號位)。如果第一個運算元為 uint 或 ulong 型別,則右移位是邏輯移位(高位填充 0)。
使用者定義的型別可過載 >> 運算子;第一個運算元的型別必須為使用者定義的型別,第二個運算元的型別必須為 int。有關更多資訊,請參見 operator。過載二元運算子時,也會隱式過載相應的賦值運算子(如果有)。
具體的使用方法的話:
int i = 8;
Console.WriteLine(i >> 3);
/*
Output:
1
向右移動3位,相當於除以8
*/