位運算

一 位運算符

&與運算:被比較的兩個數,最後一位都爲1,結果纔是1

比如11&15,他們二進制是1011和 1111

1011

1111

結果1011,所以是11

比如128和129,他們二進制是10000000和 1000000100001101

10000000

10000001

結果=10000000所以結果是128

|或運算:被比較的兩個數的二進制位數只有一個是1就爲1,

我們計算11|15

1011

1111

=1111所以結果是15

我們計算128和129

10000000

10000001

=10000001結果爲129

^異或運算:真真爲假,假假爲假,真假爲真,假真爲真。是轉換成二進制按位進行比較,1111^0000 1-0爲真1,

1-0爲真1,1-0爲真1,1-0爲真1,那麼結果就是1111,還是15.

~非運算:如果二進制位是1,結果爲0,如果爲是0,結果爲1

比如~11

那麼結果就是1011 – 0100

二 位移運算

<<左位移

向左移動n位,然後在低位補0.

16<<3

00000000 0000 0000 0000 0000 0001 0000紅色爲移掉部分

結果00000000 0000 0000 0000 0000 1000 0000 紅色爲補齊

結果:128

>>右位移(有符號)

向右移動n位,在高位補0,如果爲負數,在高位補1

16>>3

00000000 0000 0000 0000 0000 0001 0000 紅色爲移掉部分

00000000000 0000 0000 0000 0000 0001 0 紅色爲補齊部分

結果爲2

-16>>3

0000 0000 0000 0000 0000 0000 0001 0000

去反

1111 1111 1111 1111 1111 1111 1110 1111

加1

1111 1111 1111 1111 1111 1111 1111 0000

然後右移3位

1111 1111 1111 1111 1111 1111 1111 0000

1111 1111 1111 1111 1111 1111 1111 1110

>>>無符號右位移

向右移動n位,在高位補0,不考慮正負符號

16>>>3結果爲2

-16>>>3

1111 1111 1111 1111 1111 1111 1111 0000

0001 1111 1111 1111 1111 1111 1111 1110

 

 

====================================================

假設A = 25,B =44;

那麼二進制總共8位,每一位對應着一個值,從最低位到最高位依次是1,2,4,8,16,32,64,128,所以我們的每一個數組都可以根據這個計算出來

A= 25, 16 < 25 < 32,所以16位置肯定是1,現在還剩25-16 =9, 8< 9 <16,所以8的位置肯定是1 ,最後9-8 =1, 1的話剛好是最低位的位置

結果就是 

12864 32 16 8 4 2 1

0     0  0   1  1 0 0 1

 

B= 44,<32<44<64,所以32的位置上是1,44-32=12 < 16所以 8的位置1,12-8  = 4 那麼4的位置就是1,最終二進制結果就是

12864 32 16 8 4 2 1

0     0  1   0  1 1 0 0

 

那麼我們現在計算 A& B 和 A|B 和 A^B

第一種 A& B

00 0 1 1 0 0 1

00 1 0 1 1 0 0

我們知道& 表示比較的雙方都需要爲true

所以0&0= 0, 0&1=0 1&0 =0 1 & 1 =1

所以結果就是

00 0 0 1 0 0 0 轉化爲10進制就是8

 

第二種 A|B 只要有一個是true,結果爲true

0|0= 0 1|0 =1 0|1 =1 1|1 =1

00 0 1 1 0 0 1

00 1 0 1 1 0 0

 

00 1 1 1 1 0 1 轉化爲10進制就是61

 

第三種異或A^B

異或表示有一個爲真且有一個爲假纔算真,否則爲假也就是不能同時爲真或者同時爲假

00 0 1 1 0 0 1

00 1 0 1 1 0 0

 

00 1 1 0 1 0 1 結果爲0*128+0*64+1*32 +1*16+0*8 + 1*4 + 0*2 + 1*1= 53

 

發佈了317 篇原創文章 · 獲贊 115 · 訪問量 66萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章