自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#移位運(yùn)算符簡介

開發(fā) 后端
C#移位運(yùn)算符是什么呢?具體的操作是什么呢?那么本文就向你介紹這方面的內(nèi)容。

C#移位運(yùn)算符中的<< 和 >> 運(yùn)算符用于執(zhí)行移位運(yùn)算。

shift-expression:(移位表達(dá)式:)

additive-expression(加法表達(dá)式)

shift-expression   <<   additive-expression(移位表達(dá)式   <<   加法表達(dá)式)

shift-expression   >>   additive-expression(移位表達(dá)式   >>   加法表達(dá)式)

對于 x << count 或 >> count 形式的運(yùn)算,應(yīng)用二元運(yùn)算符重載決策以選擇特定的運(yùn)算符實(shí)現(xiàn)。操作數(shù)轉(zhuǎn)換為所選運(yùn)算符的參數(shù)類型,結(jié)果的類型是該運(yùn)算符的返回類型。

當(dāng)聲明重載C#移位運(yùn)算符時(shí),***個(gè)操作數(shù)的類型必須總是包含運(yùn)算符聲明的類或結(jié)構(gòu),并且第二個(gè)操作數(shù)的類型必須總是 int。

下面列出了預(yù)定義的移位運(yùn)算符。

C#移位運(yùn)算符之左移位: 

  1. int operator <<(int x, int count);  
  2. uint operator <<(uint x, int count);  
  3. long operator <<(long x, int count);  
  4. ulong operator <<(ulong x, int count); 

<< 運(yùn)算符將 x 向左位移若干個(gè)位,具體計(jì)算方法如下所述。

放棄 x 中經(jīng)移位后會超出結(jié)果類型范圍的那些高序位,將其余的位向左位移,將空出來的低序位均設(shè)置為零。

C#移位運(yùn)算符之右移位:

  1. int operator >>(int x, int count);  
  2. uint operator >>(uint x, int count);  
  3. long operator >>(long x, int count);  
  4. ulong operator >>(ulong x, int count); 

>> 運(yùn)算符將 x 向右位移若干個(gè)位,具體計(jì)算方法如下所述。

當(dāng) x 為 int 或 long 類型時(shí),放棄 x 的低序位,將剩余的位向右位移,如果 x 非負(fù),則將高序空位位置設(shè)置為零,如果 x 為負(fù),則將其設(shè)置為 1。

當(dāng) x 為 uint 或 ulong 類型時(shí),放棄 x 的低序位,將剩余的位向右位移,并將高序空位位置設(shè)置為零。

C#移位運(yùn)算符的使用:

對于預(yù)定義運(yùn)算符,位移的位數(shù)按下面這樣計(jì)算:

當(dāng) x 的類型為 int 或 uint 時(shí),位移計(jì)數(shù)由 count 的低序的 5 位給出。換言之,位移計(jì)數(shù)由 count & 0x1F 計(jì)算出。

當(dāng) x 的類型為 long 或 ulong 時(shí),位移計(jì)數(shù)由 count 的低序的 6 位給出。換言之,位移計(jì)數(shù)由 count & 0x3F 計(jì)算出。

如果計(jì)算位移計(jì)數(shù)的結(jié)果為零,則移位運(yùn)算符只返回 x 的值。

移位運(yùn)算從不會導(dǎo)致溢出,并且在 checked 和 unchecked 上下文中產(chǎn)生的結(jié)果相同。

當(dāng) >> 運(yùn)算符的左操作數(shù)為有符號的整型時(shí),該運(yùn)算符執(zhí)行算術(shù)右移位,在此過程中,操作數(shù)的最有效位(符號位)的值擴(kuò)展到高序空位位置。當(dāng) >> 運(yùn)算符的左操作數(shù)為無符號的整型時(shí),該運(yùn)算符執(zhí)行邏輯右移位,在此過程中,高序空位位置總是設(shè)置為零。若要執(zhí)行與由操作數(shù)類型確定的不同的移位運(yùn)算,可以使用顯式強(qiáng)制轉(zhuǎn)換。例如,如果 x 是 int 類型的變量,則 unchecked((int)((uint)x >> y)) 運(yùn)算執(zhí)行 x 的邏輯右移位。

C#移位運(yùn)算符的相關(guān)內(nèi)容就介紹到這里,希望對你學(xué)習(xí)C#移位運(yùn)算符有所幫助。

【編輯推薦】

  1. C#運(yùn)算符重載“>”的操作淺析
  2. C#運(yùn)算符優(yōu)先級介紹
  3. C#關(guān)系運(yùn)算符簡介
  4. C#邏輯運(yùn)算符簡介
  5. C#條件運(yùn)算符簡介
責(zé)任編輯:仲衡 來源: 百度空間
相關(guān)推薦

2009-08-12 13:35:22

C#關(guān)系運(yùn)算符

2009-08-12 14:29:32

C#條件運(yùn)算符

2009-08-12 14:23:09

C#邏輯運(yùn)算符

2009-08-11 15:51:08

C#運(yùn)算符算術(shù)運(yùn)算符

2009-08-12 09:30:10

C#??運(yùn)算符

2009-08-12 15:02:49

C#賦值運(yùn)算符簡單賦值運(yùn)算符

2009-08-12 15:20:18

C#賦值運(yùn)算符復(fù)合賦值運(yùn)算符

2009-08-11 14:16:38

C# New運(yùn)算符

2009-09-01 10:08:57

C#運(yùn)算符

2009-08-12 10:47:03

C#運(yùn)算符重載

2009-09-04 13:18:10

C#允許運(yùn)算符重載

2009-08-12 10:27:12

C#運(yùn)算符重載運(yùn)算符重載實(shí)例

2009-08-12 10:07:51

C#運(yùn)算符

2009-08-14 10:16:57

C#運(yùn)算符重載

2009-08-12 10:56:47

C#運(yùn)算符重載C#運(yùn)算符重載實(shí)例

2009-08-12 12:46:11

C#運(yùn)算符重載

2009-08-11 16:03:13

C#運(yùn)算符

2025-02-07 00:12:34

C#編程as

2009-08-12 13:07:13

C#運(yùn)算符優(yōu)先級

2025-01-24 08:32:00

運(yùn)算符C#
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號