一、算数运算符:
+ 加
- 减
* 乘
/ 除---求商数
% 模---求余数
i++ 后加---先赋值后运算
i-- 后减---先赋值后运算
++i 前加---先运算后赋值
--i 前减---先运算后赋值
二、赋值运算符:
= 赋值 int num = 10; String name = "张三";
+= 赋值运算 num += 10; 等同于 num = num + 10;
-= 赋值运算 num -= 10; 等同于 num = num - 10;
*= 赋值运算 num *= 10; 等同于 num = num * 10;
/= 赋值运算 num /= 10; 等同于 num = num / 10;
%= 赋值运算 num %= 10; 等同于 num = num % 10;
三、比较运算符:结果返回真或假(true or false)
== 相等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
代码: if(num > 10){ //如果num > 10 返回true,执行代码块的语句
System.out.println(" hello word");
}
四、逻辑运算符:结果返回 true or false
& AND(与) 两边条件为true,结果为true 同时满足两个条件 if(num > 10 & num < 20)
| OR(或) 一边条件为true,结果为true 满足一个条件
∧ XOR(异或) 两边条件为true,结果为false if(num > 10 ^ num < 20)
! NOT(非) 判断结果取反 if(!(num > 10))
&& AND(短路与) 两边条件为true,结果为true,如果一边条件不满足,则不会执行右边条件,与 & 的区别就是,&还会继续执行右边的判断
|| AND(短路或) 一边条件为true,结果为true,如果一边条件不满足,则不会执行右边条件,与 | 的区别就是,| 还会继续执行右边的判断
五、位运算符:对二进制数的运算算法 可开发加密算法
<< 左移 3 << 2 表示 3左移2位,这是一个二进制操作的过程,可以看作是 3×2的2次方 = 12 的运算,移n位就×2的n次方,左移数变大
>> 右移 6 >> 1 表示 6右移1位,可看做 6/2的1次方,6/4 = 1,移n位就/2的n次方,右移数变小
>>> 无符号右移 无符号右移跟右移是一个意思,不同的是 >>> 无论最高位时什么,右移之后都补0,>> 的话最高位是几,空位就补几
举例:
0000-0000 0000-0000 0000-0000 0000-0110 --->右移前 6
0000-0000 0000-0000 0000-0000 0000-0110 --->右移2位 6 >> 2
0000-0000 0000-0000 0000-0000 0000-0001 --->右移2位后 1
1111-1111 1111-1111 0000-0000 0000-1100 右移后最高位补1,无符号右移的话最高位还是补0
& 与运算 6 & 3 = 2 ,两个二进制的比较,1&1=1 1&0=0 0&0=0 最后得出二进制
例:
1 1 0 --- 6
& 0 1 1 --- &3
-------
0 1 0 --- 1
| 或运算 6 | 5 = 7,二进制比较,1|1=1 1|0=1 0|0=0
例:
1 1 0 --- 6
| 1 0 1 --- |5
-------
1 1 1 --- 7
∧ 异或运算 6^5 = 3, 6^5^5 = 6 ,二进制比较:1^1=0 1^0=1 0^0=0,一个数异或同一个数两次,结果还是原来那个数(加密解密算法)
例:
1 1 0 --- 6
^ 1 0 1 --- ^5
-------
0 1 1 --- 3
~ 反码运算 ~6 = -7,反码运算就是取反操作,反码6 就是6的二进制取反,结果就等于-7
根据补码运算法:数字+1再加符号位就等于结果 6+1=7加符号位取反 =-7 负数同理
例:
0000-0000 0000-0000 0000-0000 0000-0110 = 6
1111-1111 1111-1111 1111-1111 1111-1001 = -7 --- 取反
六、三元运算符:简化if else 代码
(条件表达式)?表达式1:表达式2;
int num1 = 10;
int num2 = 20;
int maxNum = (num1 > num2) ? num1: num2; //num1和num2比较,大的值赋给maxNum; |
|