文章目录

  • 运算符的分类
  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 赋值运算符
  • 三目运算符
  • 移位运算符
  • 左移运算符(<<)规则
  • 右移运算符(>>)规则:
  • 无符号右移运算符(>>>)规则:


运算符的分类

算术运算符

数学中的四则运算

运算符

运算

+


-


*


/

整除,只获取商的部分

%

求模,余数

java判断字段是否为true java判断true和false_java判断字段是否为true

关系运算符

比较

运算符

比较

>

大于

<

小于

>=

大于等于

<=

小于等于

==

等于

!=

不等于

关系运算符最终结果是一个boolean类型,表示是否成立!!
true:成立
false:不成立
注意:”=“与”==“是不同的,”=“表示赋值, ”= =“表示判断两值是否相等

逻辑运算符

两个或者更多条件之间的关联关系·
1.a&b: &叫逻辑与: 规则: 当a和b同时为true,则结果为true,否则为false
第一个是false则第二个还会继续判断
2.a&&b: &&叫短路与: 规则: 当a 和 b 同时为true,则结果为true,否则为false
第一个是false则第二个不会继续判断
3.a|b:|叫逻辑或,规则:当a和b,有一个为true,则结果为true,否则为false
第一个是false则第二个还会继续判断
4.a||b: ||叫短路或,规则:当a和b有一个为true,则结果为true,否则为false
第一个是false则第二个不会继续判断
5.!a:叫取反,或者非运算.当a为true,则结果为false,当a为false是,结果为true
    
6.a^b:叫逻辑异或,当a和b不同时,则结果为true,否则为false

赋值运算符

基本赋值运算符
    int a = 20;
复合赋值运算符
    +=, -=, *=, /=, %=
    a += 10;[等价于a = a + 10]

三目运算符

条件表达式 ? 表达式1:表达式2;
1.如果条件表达式为true, 运算后的结果是表达式1;
2.如果条件表达式为false,运算后的结果是表达式2;

移位运算符

需要将10进制转换成2进制,然后以2进制的形式进行按位运算。

& // 按位与
| // 按位或
^ // 异或
~ // 按位取反
<< // 左移运算
>> // 有符号右移
>>> // 无符号右移

左移运算符(<<)规则

按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
语法格式:
需要移位的数字 << 移位的次数
例如: 3 << 2,则是将数字3左移2位
计算过程:
3 << 2
首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12。
数学意义:
在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

右移运算符(>>)规则:

按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。
语法格式:
需要移位的数字 >> 移位的次数
例如11 >> 2,则是将数字11右移2位
计算过程:
11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010。转换为十进制是2。
数学意义:
右移一位相当于除2,右移n位相当于除以2的n次方。

无符号右移运算符(>>>)规则:

按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
其他结构和>>相似。
移位运算的一些规则,在运算中的使用
1、&运算符
|-- 判断奇偶
num % 2 = = 0,如果等于0则为偶
num & 1 = = 0,如果等于0则为偶
|-- 判断一个数是否是2的幂次方
num & (num - 1)==0,则num是2的幂次方

2、异或运算
	任何数和0异或,值不会发生变化
	两个相同的值(同一个数),做异或,结果为0

公式:-n=~n+1
~n=-n-1