之前说过了算数运算符和关系运算符,今天这里说一说其他的常用运算符:
-赋值运算符
-逻辑运算符
-三目运算符
-位运算符(常规应用开发中使用较少)
赋值运算符
运算符 | 名称 | 作用 | 例子 |
---|---|---|---|
= | 赋值 | 将等式右边的值赋给左边的变量 | a=5 |
+= | 加等于 | 等式左边+右边的结果赋给左边的变量 | a+=3相当于a=a+3 |
-=、*=、/=、%= | 规律同上 | 作用同上 | 例子模式同上 |
赋值运算符的作用就是给变量赋值,示例代码如下:
public class TestFuZhi {
public static void main(String[] args) {
int a=5;
System.out.println(a);//5
a+=1;
System.out.println(a);//6
a=5;
a-=1;
System.out.println(a);//4
a=5;
a*=2;
System.out.println(a);//10
a=5;
a/=2;
System.out.println(a);//2(由于是两个int进行除法运算,其结果也是int,所以会损失精度)
a=5;
a%=3;
System.out.println(a);//2
}
}
逻辑运算符
运算符 | 名称 | 作用 | 例子 |
---|---|---|---|
& | 与 | 进行与运算 | a & b(如果a和b都是true就返回true,否则返回false) |
| | 或 | 进行或运算 | a | b(如果a和b中有一个为true就返回true,否则为false) |
! | 非 | 取反 | !a(如果a为true,!a则为false) |
^ | 异或 | a^b(如果a和b只有一个为true时,结果为true,否则为false) | |
&& | 短路与 | 进行与运算 | a && b && c(如果a为false,则结果直接为false,不继续运算) |
|| | 短路或 | 或运算 | a || b || c(如果a为true则结果直接为true,不会继续运算下去) |
逻辑运算符用来连接两个boolean类型的值,其结果也是一个boolean。测试代码如下:
public class TestLuoJi {
public static void main(String[] args) {
boolean a=true;
boolean b=true;
boolean c=false;
boolean d=false;
System.out.println(a&c);//false
System.out.println(a&b);//true
System.out.println(d&c);//false
System.out.println(a|c);//true
System.out.println(a|b);//true
System.out.println(c|d);//false
System.out.println(!a);//false
System.out.println(!c);//true
System.out.println(a^c);//true
System.out.println(a^b);//false
System.out.println(c^d);//false
}
}
三目运算符
运算符 | 名称 | 作用 | 例子 |
---|---|---|---|
a?b:c | 三目运算符 | 如果a为true则b,否则c | 3>2?5:6结果为5 |
三目运算符是一种简洁的判断用法,对于结果只有两种选择,且只输出一次时,通常选择三目运算符。
public class TestSanMu {
public static void main(String[] args) {
System.out.println(3>2?5:6);//5
System.out.println(3>4?5:6);//6
}
}
位运算符(应用并不是很多,不明白也无妨)
运算符 | 名称 | 作用 | 例子 |
---|---|---|---|
& | 与 | 与运算 | 4&5,结果是4 |
| | 或 | 或运算 | 4|5,结果是5 |
~ | 非 | 取反 | ~4,结果是-5 |
^ | 异或 | 异或运算 | 4^5,结果是1 |
<< | 左移 | 左移运算 | 6<<2,结果是24 |
>> | 右移 | 右移运算 | 6>>2,结果是1 |
>>> | 无符号右移 | 无符号右移运算 | 6>>>2,结果为1 |
位运算符的运算过程都和操作数的二进制有关,也就是说,首先要将操作数转换成二进制数,然后再按照规则进行运算。其规则如下:
&:相同位都是1则为1,否则为0。 例如 4&5,4的二进制为1000,5是1001。
1000
1001
————————
1000 ——>第一位都是1则为1,第二位全是0位,第三位也是0,第四位只有一个1,也为0。所以其结果为1000,转换为十进制就是4。
| :相同位都是0则为0,否则为1。 运算方式同上,大家可自己行计算。
~:同位取反,如果是1则为0,是0则为1。 例如: ~4
0000 1000
——————
1111 0111 ——>取反后得到一个这样的二进制数,那么这个数是多少呢?
在数值表示中,第一位是符号位,0代表是正数,1代表负数。通过这个规则可以看出这是一个负数,负数取值的规则为:先将这个数的值(直接转换成十进制)-1,也就得到了11110110,再取反为0000 1001,十进制为5,加负号为-5
这里的表述如果看不懂,可以取百度一下,负数的表示方式。
^:两个操作数的位中,相同则结果为0,不同则结果为1。
>>: 将操作数的二进制数向右移动N位,如果操作数是正数,则在左侧补N个0;如果操作数是负数则补N个1
<<:规则同右移,
>>>:这里移动的规则和右移相同,只是补位时不考虑正负,都补0