逻辑单与 & ----- 有一个为false则为false 否则为 true
逻辑单或 | ----- 有一个为true 则为true 否则为false
逻辑异或 ^ ----- 相同则为false 不同则为true
逻辑非 ! ----- 非false则true,非true则false
逻辑双与 &&----有一个为false则为false 否则为 true
逻辑双或||-----有一个为true则为true否则为 false
&.|与&&.||的区别&| 两边都有执行
而&&.|| 具有短路作用 &&如果左边的表达式为true 那么右边的表达式就不执行了.同理||
二 位运算符位与: & 有0则为0
位或: | 有1则为1
位异或: 相同则为0不同则为1 ^ (位异或的特点:一个数据被另一个数据位异或两次,其值是他本身)
~: 反码 详细请看举例
<<:左移动(将数据的补码进行左移动,右边不够的补0;将最高符位丢弃掉)
>>:右移动(将数据的补码进行右移动;如果最高符号位为1,则左边补1;最高符号位为0,则左边0)
>>>:无符号右移(无论最高符号位是1还是0,左边始终补0)
举一个例子:
首先 把a和b十进制转化为二进制
十进制转二进制:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依次步骤继续向下运算直到商为0为止
5 转成二进制101
11转成二进制1011
两则开始运算是降位数补齐
5 ---> 0000 0101
10---> 0000 1011
5|10 -->0000 1111 然后在转成10进制 从后面开始依次1*2^ 0+1*2^1+.......+1*2^3=15
5&10-->0000 0001 同上 =1
5^10-->0000 1110 同上 =14
~5---> 0...... 00000101
首先需要知道:
- 正数的原码 = 反码 = 补码
- 负数的反码 = 原码符号位不变,其它位全取反,负数的补码 = 反码 + 1
1、将该数取反。但又由于计算机中是以补码的形式存储的,所以0 ..0101全取反是1 ...1010(只是补码形式,还需要转成原码)。
.
2、此时得到的1... 1010只是补码,我们需要将它先转为反码,反码 = 补码-1,
得到反码为1 ..1001。
.
3、我们得到反码后,将它转为原码,原码 = 反码符号位不变,其它位全取反,得到最终的原码为1 ...0110,转化为十进制就是-6。
总结:只需要记住一个公式即可 (~x) = -(x + 1)



