按位與、按位或、邏輯與、邏輯或、異或運算;左移右移運算符

1、按位與運算:

參加運算的兩個數據,取補碼按二進制位進行“”運算。

運算規則:0&0=0;   0&1=0;    1&0=0;     1&1=1;

 即:兩位同時爲“1”,結果才爲“1”,否則爲0。

計算步驟:求 5&-5

①計算兩個數據的補碼,正數的補碼爲原碼本身,負數的補碼(求負整數的補碼,將其原碼除符號位外的所有位取反(0變1,1變0,符號位爲1不變)後加1)。

例如:+5的補碼是 00000101;

           -5的補碼:先求原碼:00000101;          取反:11111010;             再加1:11111011

②按位進行與運算:

00000101 & 11111011 = 000000001

③轉化爲十進制,所以5&-5計算結果爲1。

 

2、按位或運算:

參加運算的兩個數據,按二進制位進行“”運算。

運算規則:0|0=0;   0|1=1;    1|0=1;     1|1=1;

 即:兩位同時爲“0”,結果才爲“0”,否則爲1。

步驟與1類似:+5|-5 = 00000101 | 11111011 = 11111111

 

3、邏輯與運算:

同時爲真即才爲真;有一個條件爲假即爲假;

 

4、邏輯或運算:

同時爲假即才爲假;有一個條件爲真即爲真;

 

5、按位異或運算

參加運算的兩個數據,按二進制位進行“異或”運算。

運算規則:0^0=0;   0^1=1;   1^0=1;   1^1=0;

即:參加運算的兩個對象,如果兩個相應位爲“異”(值不同),則該位結果爲1,否則爲0。

9^5可寫成算式如下: 00001001^00000101=00001100 (十進制爲12)可見9^5=12  

 

6、左移運算符(<<)

將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)。

例:a = a<< 2將a的二進制位左移2位,右補0,

左移1位後a = a *2; 

若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2。

 

7、右移運算符(>>)

將一個數的各二進制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。

操作數每右移一位,相當於該數除以2。

例如:a = a>> 2 將a的二進制位右移2位,

左補0 or 補1得看被移數是正還是負。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章