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得看被移數是正還是負。