概述
运算符
- 算术元素符
- 1. +(加) -(减) *(乘) /(除) %(取余) ++(自增) --(自减)
- 2. %: 取模运算
- 赋值运算符
- 1.运算符号: = , += ,-= , *=, /=, %=
- 比较运算符
- 1.== , !=, > , < ,<= ,>=, instanceof
- 逻辑运算符
- 1.&(与) |(或) !(非) ^(异或) && ||
- 位移运算符
- 三元运算符
- 写在最后
算术元素符
1. +(加) -(减) *(乘) /(除) %(取余) ++(自增) --(自减)
注意:/(除):两个整数相除,其结果一定是整数,小数位计算机自动略去
例:
int num1 = 15;
int num2 = 4;
1. int result = num1/num2;
system.out.println(result); // 3
2. int result2 =num1/num2*num2;
system.out.println(result2); // 12
3. double result3 = num1/num2;
system.out.println(result3); // 3.0
4. double result4 =num1/num2+0.0;
system.out.println(result4); //3.0
5. double result5 =num1/(num2+0.0)
system.out.println(result5 ); //3.75
2. %: 取模运算
被模数 % 模数 = 结果
注意:结果正负与被模数正负相同
例如:
int m1 = -15;
int n1 =4;
System.out.println(m1%n1); //-3
int m2 = 15;
int n2 =-4;
System.out.println(m2%n2); //3
先看例子:
1. ++在前
int num = 4;
int num1 =++num;
System.out.println(num);
System.out.println(num1);
// num: 5 num1: 5
2. ++在后
int num2 = 4;
int num3 =num2++;
System.out.println(num2);
System.out.println(num3);
// num2: 5 num3: 4
解析:
等号在这边为赋值,将等式右边的值赋值给左边来看++在前,首先num的值先进行了+1运算,将num的值改变成5,然后将结果赋值给num1所以,例子++在前 的 num 与 num1的值都为5
然后++在后,首先num2的值赋值给num3,由于num2还未执行++操作,因此num3的值为num2的初始值4,随后num自己进行+1操作,将num2的值改变成5
结论:
++在前,先自增1在进行运算,例如例子中的赋值运算
++在后,先运算,后自增1
– 在前,先自减1在进行运算
– 在后,先运算,后自减1
赋值运算符
1.运算符号: = , += ,-= , *=, /=, %=
+= :
number+=2 等价于:number=number+2
-= , *=, /=, %= 类似
比较运算符
1.== , !=, > , < ,<= ,>=, instanceof
比较运算符只有一种结果:true 或者 false
例如:
int num = 4;
int num4 =5;
System.out.println(num==num4); //false
System.out.println(num>num4); //false
System.out.println(num<num4); // true
System.out.println(num>=num4); // false
System.out.println(num<=num4); //true
System.out.println(num!=num4); //true
instanceof:用来测试一个对象是否为一个类的实例,后续在面向对象模块会涉及到
逻辑运算符
1.&(与) |(或) !(非) ^(异或) && ||
重点:
&(与)、&& 的区别:
&:会对所有条件进行判断
&&:不会对所有条件进行判断,只要当条件出现false的情况,就不会 继续判断,直接输出为false
|(或)、 || 的区别
|:会对所有条件进行判断
|| :不会对所有条件进行判断,只要当条件出现true的情况,就不会继续判断,直接输出true
在开发中,使用 && 跟 || ,好处就是提高代码执行效率
位移运算符
位移运算符是对整数的二进制进行运算,无符号右移(>>>)和 有符号右移左移(>>,<<) ,在一些原码中经常可以看到
一个数进行位移运算,其实有个巧妙的方法:
<< 左移: 左移几位就乘以2的几次方
>>, >>> 右移: 右移几位就除以2的几次方
计算小技巧:
左移不用说,左移几位乘以2的几次方,结果正负取决于要操作数的正负
例如:
int num2 = -22;
int num3 = 22;
System.out.println(num2 << 2); //-22*2^2= -88
System.out.println(num3 << 2); //22*2^2= 88
右移 (这边先不看无符号右移) :
当右移时,右移几位除以2的几次方,刚好能整除,商就是最终值
若不能整除,这边得考虑想要位移的数是正数还是负数
若为正数:结果向下取整,也就是取小数点前的数字
若为负数:结果向上取整,小数点前的数字+1
结果的正负也取决于要操作数的正负
例如:
int num2 = -22;
int num3 = 22;
System.out.println(num2 >> 2); // -6
System.out.println(num3 >> 2); // 5
解析:
-22 右移两位,-22*(2^2) =-5.5 向上取整,结果符号与-22相同,所以结果为-6
22 右移两位,22*(2^2) =5.5 向下取整,结果符号与22相同,所以结果为5
现在来看无符号右移:(>>>)
无符号:最终位移操作结果都为正数
首先当要操作的数为正数时,跟>>(右移)一样向下取整
若要操作的数为负数时,这边的计算方法对无符号右移就不适用了,就有一个新的概念,原码,反码,补吗
原码:
原始二进制表示,最高位为符号位,对于正数来说最高位为0,负数为1
反码:
正数的反码就是原码,负数的反码,符号位不变,其余位取反(0变1,1变0)
补码:
正数的补码就是原码,负数的补码为反码+1
无符号右移:最高位补0
看个例子:
-10 无符号位移4位
三元运算符
结构:(条件表达式)?表达式1:表达式2
当条件表达式为true时,则执行表达式1 否则表达式2
例如:
int x= 10;
int y =5;
System.out.println(x>y?"大于":"小于"); //大于
写在最后
欢迎关注公众号,每天一篇纯干货分享,一起努力吧!!
最后
以上就是瘦瘦雪碧为你收集整理的关于java运算符,看这篇就够了算术元素符赋值运算符比较运算符逻辑运算符位移运算符三元运算符写在最后的全部内容,希望文章能够帮你解决关于java运算符,看这篇就够了算术元素符赋值运算符比较运算符逻辑运算符位移运算符三元运算符写在最后所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复