位运算
位运算的操作对象只能是整型或字符型数据
C语言提供6种位运算符:
& 按位与 | 按位或 ^按位异或 ~按位取反 << 按位左移 >>按位右移
复合赋值运算符:
&=、 |+、 ^=、 <<=、 >>=、 =、 +=、 -=、 *=、 /=、 %=
按位与运算&
两个相应的二进制位都是1时,他们按位运算后的结果才是1,否则为0。作用:清零
按位或|
两个相应的二进制中只要有一个为1,则它们的按位或运算后结果为1。作用:将特定位置1
按位异或运算^
相异为1,相同为0
按位取反运算~
单目运算符,按位取反后,0变1,1变0。
注:对一个数按位取反得到的值为该数+1后再乘以-1。
按位左移运算<<
格式:数<<n
功能:将二进制位按位依序左移N位
对一个十进制数左移n位后得到的值为该数乘以2的n次方
按位右移运算<<
格式:数>>n
功能:将二进制位按位依序右移N位对
一个十进制数左移n位后得到的值为该数除以2的n次方。
若该数为一个负数,并且不能被2的n次方整除,则得到的数为商加-1