您的位置:首页 > 编程语言 > Java开发

java基础之运算符

2017-11-20 16:11 232 查看
算术运算符

+ - * / % ++ - -加减乘除取余自加自减

这里说一下除法运算:如果两个数都是整数,计算结果也是整数,不能够整除进行四舍,不进行五入;如果两个数有一个是浮点数,得到的结果是自然除法,除数可以为0或0.0,结果是无穷大或无穷小

float f= 2.1f;
int g=6;
System.out.println(g/f);
System.out.println(f/0);


得到的结果是

2.857143

Infinity

取余运算,就是求余数,得到的结果不一定都是整数。若两个数都是整数,除数不能为零,否则会出现异常,如果两个数中有一个数浮点数,怎除数可以为0 ,得到的结果是非数-NaN

System.out.println(5 % 0.0);//得到的结果:NaN
System.out.println(-5.0 % 0);//得到的结果:NaN
System.out.println(0 % 5.0);//得到的结果:0.0
System.out.println(0 % 0.0);//得到的结果:NaN
System.out.println(-5 % 0);//得到的结果:出现异常,Exception in thread "main" java.lang.ArithmeticException: / by zero


++自加 - -自减 a++,++a,b- -,- -b,当自加自减在操作数左边时表示先加1再赋值,在右边时,先赋值再加1

int a= 5;
int b=a++ +6;
System.out.println(b);//结果:11
int c = ++a +6;
System.out.println(c);//结果:13


赋值运算符

= ,可以直接将数值赋给变量,也可以将表达式的值赋给变量

位运算符 一般来说位运算符只能操作整数类型的变量,对变量的二进制进行操作。



& 按位与

| 按位或

~ 按位‘非’

^ 按位异或

<< 左移

>>
4000
; 右移

>>> 无符号右移









这里盗的几张图说的比较清楚,有兴趣的朋友可以看看《疯狂java讲义》这本书。

位移运算是对二进制数进行运算,一般对于位数,变量类型需要注意:

byte short char类型的数需要先自动转化为int类型再进行运算

int类型是32位的数,超过32,会对这个数取余在进行运算,所以a>>32=a,a>>33=a>>1

long类型是64,和int类型一样遵循这个规则

比较运算符

>

>=

<

<=

以上都只支持数值类型的比较

\==,数据类型即使不相同,数值类型相同返回true,若是引用类型且为父子关系,则必须都指向同一个对象才返回true

!=

扩展后的运算符 赋值运算符和算术运算符和位运算结合

+= 对于x+=y 就等于 x=x+y

-=

*=

/=

%=

&=

|=

^=

<<=

>>=

>>>=

逻辑运算符

&& 与 短路,两边为true 返回true

& 与 不短路,

|| 或 短路,有一个是true,返回true

| 或 不短路

! 非 只需要一个操作数,若为true返回false,反之

^ 亦或,两个不同返回true,不同返回false

三目运算符

(expression) ? if-true-statement : if-false-statement

运算符优先级

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: