Java-运算符

Java-运算符

image-20210511102112566

1. 算数运算符

1.1 分类

​ 加+,减-,乘*,除/,取余%

​ ++:自身+1,等同于i=i+1;

​ --同上

注意:

​ i++和++i的区别:

​ i++:先赋值, 后+1

​ ++i:先+1, 后赋值

1.2 优先级:单目>双目>三目

​ 单目:只有一个操作数,比如 ++ 和 - -

​ 双目:有两个操作数,比如1 + 2

注意:

​ 运算时,结果的类型是运算中的最高精度的数据类型

​ 千万不要使用小数比较相等

image-20210511102612639

2. 关系运算符

2.1 分类

​ 大于 > 小于 < 等于 == 不等于 != 大于等于 >= 小于等于 <=

注意:

​ 关系运算符返回值是Boolean类型

​ == 比较基本数据类型时是比较值的大小,如果比较引用数据类型那就比较内存地址

​ == 是比较相等, =是赋值

3. 位运算符

3.1 分类

​ 位与 & : 两边都属true结果才是true

​ 位或 | : 一个是true结果就是true

​ 位非 ! : 取反

​ 位异或 ^ : 两边不一样结果就是true

​ 按位非 ~: 0 的二进制是 : 0000 0000 , ~0 之后, 1111 111, 这是补码,补码-1 得到反码 1111 1110 , 原码 1000 0001 就是-1

3.2 补充与说明

3.2.1 右移运算符 >>

​ (考虑符号位,再怎么移动,符号位不受影响),8 >> 2 = 2

​ 操作过程 : 转换为二进制 : 0000 1100 , 右移两位,向最左边+两个0(符号位之 后),最右边,删除两位(正数 左边补0 , 负数 左边补1 , 右移几位 就等于 x / 2的n次方)

3.2.2 左移运算符 <<

​ 同上取反,除变乘,右移变左移,左移变右移

3.2.3 右移运算符 >>>

​ (不看符号位),只补0,不补1,正数不受影响,和 >> 一样,负数会全变为正数 -1 >>> 1 : 001111 11

3.2.4 逻辑比较

​ && : 且,短路与 , 和 & 一样,如果第一个是false,第二个就不执行了, 但是 & 第二个也会执行

​ || : 或,短路或 , 如果第一个是true,第二个就不执行了, 但是 | 第二个会执行

​ & : 两边也可以是数字,如果是数字 就是要进行 与运算

|| : 或,短路或 , 如果第一个是true,第二个就不执行了, 但是 | 第二个会执行

​ & : 两边也可以是数字,如果是数字 就是要进行 与运算

​ 8 & 9 : 把8和9转换为二进制,然后每位比较,如果都是1 就取1,否则就是0, 结果不会超过两个数中最小的一个

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值