day_03 java运算符

java运算符

定义: 用于表示数据的运算、赋值的一系列符号。

分类
在这里插入图片描述

一、算数运算符

算数运算符
+ - * / % (取余运算)
++ , –
++ : 自身加一
–: 自身减一
i++ 和 ++i
i++ : 先赋值 后+1
++i : 先+1 后赋值
优先级 : 单目>双目>三目
单目 :只有一个操作数, 比如 ++ 和 –
双目:两个操作数 , 比如 1+2

! 记住i++与++i的不同

int s = 100;
// i++ : 先赋值 后+1
// ++i : 先+1 后赋值
s = s + s++;
//s=100+100
System.out.println(s);

二、关系运算符

关系运算符
在这里插入图片描述

	返回值是boolean类型,只有true 和false两种。
	=是赋值,==是比较是否相等。
	当==用于比较引用类型时,比较的是其内存地址。

三、逻辑运算符

与 &:两个操作数相与,如果都为true,则为true

或 |:两个操作数相或,有一个为true,则为true

异或 ^:相异为true,两个操作数不一样就为true,相同为false

短路&& 和 逻辑& 区别?

1.短路与,从第一个操作数推断结果,只要有一个为fase,不再计算第二个操作数

2.逻辑与,两个操作数都计算

短路|| 和 逻辑| 区别?

1.短路或,从第一个操作数推断结果,只要有一个为true,不再计算第二个操作数

2.逻辑或,两个操作数都计算

四、位运算符

位运算符
&:位与,两边都为true,结果才是true。
|:位或,两边只要有一个为true ,结果就是true。
!:位非,取反,!true结果为false。
^ :位异或,两边不一样时结果为true。
~:按位非,0 的二进制是 : 0000 0000 , ~0 之后, 1111 111, 这是补码,补码-1 得到反码 1111 1110 , 原码 1000 0001 就是-1。

  • 右移运算符(需要考虑符号位,符号位是不动的)
    8>>2 结果是2 // 先转换成二进制,0000 1000 1往右移 (右删左加 正数补0 负数补1) 成为0000 0010

  •  <<左移运算符  同上取反 
    
  •   >>>右移运算符  (不看符号位) 只补0  不补1  正数转变是不受影响  和>>一样   ; 负数全变为正数
      	-1 >>> 1 : 001111 11
    
  • 逻辑比较
    &&: 且 ,短路与 运算时结果和&一样。 过程计较时,在&&中,如果第一个的值为false,第二个就不用看了 ,但是在&中,第二个也会执行。

  •  ||:或,短路或  运算结果和|一样,但是在运算时,在||中,如果第一个为true,第二个就不用看了;但是在|中第二个仍然会运行。		
    
     &: 两边也可以是数字进行比较,但是在进行与运算时,要把两边的数字转换为二进制,然后每一位进行比较,都为1就取1,否则取0.
     		8:0000 1000
     		9:0000 1001
     结果:  0000 1000
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值