位與:&
操作: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 中利用bitset容器的位操作 一 傳統的c方式位操作 1.基本操作 使用乙個unsigned int變數來作為位容器。2.操作符 按位或操作符 result exp1 exp2 當exp1和exp2中對應位中至少有乙個為1時,result中對應位為...常見位操作
常見位運算
重溫位操作 C 位操作介紹