2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
右移運(yùn)算符 (>>) 將第一個(gè)操作數(shù)向右移動(dòng)第二個(gè)操作數(shù)所指定的位數(shù)。
如果第一個(gè)操作數(shù)為 int 或 uint(32 位數(shù)),則移位數(shù)由第二個(gè)操作數(shù)的低五位給出(第二個(gè)操作數(shù) & 0x1f)。
如果第一個(gè)操作數(shù)為 long 或 ulong(64 位數(shù)),則移位數(shù)由第二個(gè)操作數(shù)的低六位給出(第二個(gè)操作數(shù) & 0x3f)。
如果第一個(gè)操作數(shù)為 int 或 long,則右移位是算術(shù)移位(高序空位設(shè)置為符號(hào)位)。如果第一個(gè)操作數(shù)為 uint 或 ulong 類型,則右移位是邏輯移位(高位填充 0)。
用戶定義的類型可重載 >> 運(yùn)算符;第一個(gè)操作數(shù)的類型必須為用戶定義的類型,第二個(gè)操作數(shù)的類型必須為 int。有關(guān)更多信息,請(qǐng)參見 operator。重載二元運(yùn)算符時(shí),也會(huì)隱式重載相應(yīng)的賦值運(yùn)算符(如果有)。
具體的使用方法的話:
int i = 8;
Console.WriteLine(i >> 3);
/*
Output:
1
向右移動(dòng)3位,相當(dāng)于除以8
*/

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
左移操作符,
將第一個(gè)操作數(shù)向左移動(dòng)第二個(gè)操作數(shù)指定的位數(shù),空出的位置補(bǔ)0。
左移相當(dāng)于乘. 左移一位相當(dāng)于乘2;左移兩位相當(dāng)于乘4;左移三位相當(dāng)于乘8。
如:
x<<1= x*2
x<<2= x*4
x<<3= x*8
x<<4= x*16
- 2 回答
- 0 關(guān)注
- 1795 瀏覽
添加回答
舉報(bào)