常見位操做

位與:&it

操做:1 & 1 = 1;  1 & 0 = 0;  0 & 0 = 0;總結

特色:只有全是1的時候纔是1,其餘狀況都是0.

總結:任何數和0位與就是0,和1位與沒有變化,因此位與經常使用在清零上(清零用位與)。

 

位或:|

操做:1 | 1 = 1;  1 | 0 = 1;  0 | 0 = 0;

特色:只有全0的時候纔是0,其餘狀況都是1.

總結:任何數和1位或就是1,和0位或沒有變化,因此位或經常使用在置1上(置1用位或)。

 

位取反:~

操做:~1 = 0;  ~0 = 1;

特色:1取反爲0,0取反爲1.

 

位異或:^

操做:1 ^ 1 = 0;  1 ^ 0 = 1; 0 ^ 1 = 1; 0 ^ 0 = 0;

特色:相同爲0,不一樣爲1.

總結:任何數和1位異或會取反,和0異或沒有變化(特定位要取反就用位異或)。

 

左移(<<)和右移(>>)

操做的時候要考慮有符號數(signed number)和無符號數(unsigned number)。

對於有符號數:左移的時候右側補0;右移的時候左側補符號位(正數符號位爲0,則補0;負數符號位爲1,則補1).

對於無符號數:左移的時候右側補0;右移的時候左側也是補0.

注意:咱們對寄存器進行賦值的時候用的都是無符號的數

 

某一位取反 &= ~

a &= ~b;

 a ^= 1<<bit;

相關文章
相關標籤/搜索