栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中逻辑运算符& | ^ 等和位运算符& | ^ ~ << >> >>>总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中逻辑运算符& | ^ 等和位运算符& | ^ ~ << >> >>>总结

一 逻辑运算符

逻辑单与 & ----- 有一个为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)


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877133.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号