JAVA基础-4 运算符

本文详细讲解了Java中的数学运算符、关系运算符、条件运算符和位运算,包括算数运算符如加减乘除、逻辑运算符的短路特性、位与、异或、或等,并特别介绍了二进制补码和位移操作。适合初学者理解基础语法和底层原理。
摘要由CSDN通过智能技术生成

目录

1、数学运算符

2、关系运算符

3、条件运算符/三元运算符

4、位运算


1、数学运算符

  • 算数运算符

           +、-、*、/、%、++、--

  •  赋值运算符

            =、+=、-=、*=、/=、%=

2、关系运算符

  • 比较运算符

           <、>、=、<=、>=、==、!=

  • 逻辑运算符

           与(&&)、与(&)、或(||)、或(|)、非(!)

3、条件运算符/三元运算符

布尔表达式 ? 表达式1 :表达式2

4、位运算

与(&)、或(|)、异或(^)、反码(~)、移位处理(<<、>>、>>>)

注意

  • 算数运算符中,0不能作为除数
  • 在逻辑运算符中,&&、& 和 ||、| 的区别是:&&、|| 具有短路功能,&、| 没有
  • 异或运算(^)规则:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1
  • 按位与运算(&)规则:两个数都转为二进制,然后从高位开始比较,如果两个数都为1则为1,否则为0
  • 按位或运算(|)规则:两个数都转为二进制,然后从高位开始比较,两个数只要有一个为1则为1,否则就为0
  • 按位异或(^)规则:两个数都转为二进制,然后从高位开始比较,两个数同时为0或1时,结果为0,否则为1
  • 位非(按位取反)运算(~)规则:如果位为0,结果是1,如果位为1,结果是0

              在Java中,所有数据的表示方法都是以补码的形式表示,如果没有特殊说明,Java中的数据类型默认是int,int数据类型的长度是8位,一位是四个字节,就是32字节,32bit.


       例:37转为二进制是100101,补码后为:00000000 00000000 00000000 00100101
          取反为:11111111 11111111 11111111 11011010
          因为高位是1,所以原码为负数,负数的补码是其绝对值的原码取反,末尾再加1。
          因此,我们可将这个二进制数的补码进行还原:首先,末尾减1得反码:11111111 11111111 11111111 11011001 其次,将各位取反得原码:00000000 00000000 00000000 00100110,
          此时二进制转原码为38。
          所以~37 = -38. 

  • 左移(<<):就是将运算符左边的操作数的二进制数据按照运算符右边操作数指定的位数向左移动,右面移空的部位补0。一个数左移n,相当于这个数乘以2的n次方
  • 右移(>>): 就是将运算符左边的操作数的二进制数据按照运算符右边操作数指定的位数向右移动,如果高位是0,左侧被移空的高位就填入0,如果高位是1,左侧被移空的高位就填1

        例:101100 >> 1 = 110110      001101 >> 1 = 000110

  • 无符号右移(>>>):无论高位是0还是1,左侧被移空的高位都填入0

运算符由高到低的顺序

1、增量和减量运算 -> 算术运算符 -> 比较运算符 -> 逻辑运算符 -> 赋值运算符
2、如果两个运算有相同的优先级,那么左边的表达式要比右面的表达式优先被处理。

                                        运算符优先级

优先级描述运算符
1括号()
2正负号+、-
3一元运算符++、--、!
4乘除、取余*、/、%
5加减+、-
6移位运算>>、<<、>>>
7比较大小<、>、<=、>=
8比较是否相等==、!=
9按位与运算&
10按位异或运算^
11按位或运算|
12逻辑与运算&&
13逻辑或运算||
14三元运算符? :
15赋值运算符=


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值