二進制移位運算


移位運算(shifting operation)是C#中一種特殊的運算,其原理是根據數值存儲在計算機內存中以二進制的標准,進行前移或者后移若干位的算法。根據題目來看,無符號位的數字移動“左”、“右”有以下規律:

1)左移:將每個二進制的數字往左邊移動若干位(若干位:符號“<<”后面的數字,不足以0補充)。

2)右移:將每個二進制的數字往右邊移動若干位(若干位:符號“>>”后面的數字,不足以最高位的數字補充)。

下面給出具體例子:

【例】計算2<<2和2>>2:

在計算機中,正整數2的源碼=反碼=補碼=0000 0010,往左邊每個數字移動2位之后,最高的兩位溢出(丟棄),又因為符號位(最高位為0),因此補充兩個0,變成0000 1000=>8.

反之,0000 0010右移動2為去掉右邊的兩個數字,在最高位上添加兩個0,變成0000 0000=>0

【重要結論】
1)左移和右移n位,相當於去掉前面和后面對應的若干位,再補充。
2)當左移動是2的時候,可以看成是某個數×2的n次方,反之除以2的n次方

 

移位運算是對2進制操作的,
intmax 的2進制是 11111111111111111111111111111111 將其左移八位用零補足得到
11111111111111111111111100000000結果為4294967040


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM