常見位操作

2022-09-02 14:00:11 字數 819 閱讀 8253

位與:&

操作: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<

常見位操作

一 巨集setbit getbit clearbit define getbit data,i data 0x0001 1 0 define setbit data,i data 0x0001 i define clearbit data,i data 0x0001 i 1.首先在stm32上常數預...

常見位運算

builtin ffs x 返回x的最後一位1是從後向前第幾位 builtin popcount x 返回x的二進位制下1的個數 x x 只保留最後一位1的二進位制 x x x 1 清零最低位的1 x 1 判斷奇偶 x 1 n 將第n位置1 x 1 n 將第n位置0 x 1 k 1 對x的第k位取反...

重溫位操作 C 位操作介紹

c 位操作包括兩種 傳統的c語言方式的位操作和c 中利用bitset容器的位操作 一 傳統的c方式位操作 1.基本操作 使用乙個unsigned int變數來作為位容器。2.操作符 按位或操作符 result exp1 exp2 當exp1和exp2中對應位中至少有乙個為1時,result中對應位為...