按位取反
按位取反也包扣符号位的取反,而且系统存储的是数据的补码,而不是原码。
eg:
5----0 0101 第一个0为符号位
~5---1 1010 (这个是原码)--->补码:1 0101+1=1 0110
所以最终结果为-6.
正数取反一定是负数,负数取反一定是正数
奇数和偶数
二进制数最低位,即最后一位决定这个二进制对应的十进制是偶数还是奇数
0--偶数
1--奇数
按位异或^
不同为1,相同为0
A:010101
B:100111
C:110010
A^B=C
A^C=B
B^C=A
可以利用^运算实现两个变量值的交换
A=10;
B=20;
C=A^B;
B=C^B;//C^B的结果为A
A=C^A;//C^A的结果为B
对于char型也适用
左移<<
num1<<n
表示把num1左移n位,空出来的用0补,移除的不管,左移之后的数m等于num1乘以2的n次方(m=num1*2^n)
右移同理,只是m是num1除以2的n次方
注意:位操作符只能用于数值型(整形)之间的运算,不能运用于其他数据类型,比如指针,不用于直接的非空于空的运算,只能将指针与NULL比较出1或者0,再进行位运算。