& - 按(二进制)位与
| - 按(二进制)位或
^ - 按(二进制)位异或
首先,我们要知道这三个符号对数据的操作都是基于二进制的
正数的源码,反码,补码相同
其次就是整数在内存中存放的是补码,也就是说这三个操作符是对整数二进制的补码进行操作的
我们创建三个变量,来测试三个操作符的结果,并且讲解
首先是&操作符
&的意思是(二者都为1,则为1,否则为0)
结果是3
我们来看看是怎么算的
因为3是正数,原反补相同,所以直接就是结果
|(二者只要有一位是1,结果就是1)
因为算出来的结果是负数,而负数在内存中是补码,所以还要经过转换
^(相同为0,相异为1)
那么位操作符有什么用呢?接下来我们看一道例题