C#中有哪些移位運算符

今天就跟大家聊聊有關(guān)C#中有哪些移位運算符,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)成立于2013年,先為侯馬等服務(wù)建站,侯馬等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為侯馬企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

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

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

additive-expression(加法表達式)

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

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

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

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

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

C#移位運算符之左移位:

int operator <<(int x, int count);  uint operator <<(uint x, int count);  long operator <<(long x, int count);  ulong operator <<(ulong x, int count);

<< 運算符將 x 向左位移若干個位,具體計算方法如下所述。

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

C#移位運算符之右移位:

int operator >>(int x, int count);  uint operator >>(uint x, int count);  long operator >>(long x, int count);  ulong operator >>(ulong x, int count);

>> 運算符將 x 向右位移若干個位,具體計算方法如下所述。

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

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

C#移位運算符的使用:

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

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

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

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

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

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

看完上述內(nèi)容,你們對C#中有哪些移位運算符有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

新聞標(biāo)題:C#中有哪些移位運算符
標(biāo)題網(wǎng)址:http://muchs.cn/article16/jcpdgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、品牌網(wǎng)站設(shè)計、企業(yè)網(wǎng)站制作用戶體驗、App設(shè)計網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計