运算方法
整数运算
Java运算遵循四则运算优先级原则,整数运算不出现任何小数点,只保留整数部分。若求余可用%;除0会报错。 例如:int i = 100%9;//结果 i=1 int t = 100 / 9; //t = 9
++,-- :自增自减,当放在参数前,则为先自增或自减,再带入运算,放在参数后面,则是先运算再自增或自减 。
位运算:
与&:同为1结果为1,其他结果均为0;
或|:只要存在1,结果为1,同为0结果才为0;
非~:~0为1,~1为0;
异或^:两个数相同为0,两个数不同为1;
溢出:当结果超过int范围时,不会报错,但结果不对。
浮点数运算
浮点数对于0.1的二进制是无限循环小数,所以对于0.1的运算存在误差。所以判断两个运算值是否相等时,可以将两个值进行相减之后的绝对值小于0.00001,即可默认为相等。
例如: double r =Math.abs(x-y);
if(r<0.00001){//相等}else{//不等}
注:浮点数只能进行size运算,不能进行位运算,移位运算。且对于复杂的四则运算,不能将整型进行自动提升为浮点数。
例如:double x = 23.8 - 24/5;//结果为19.8,24/5并没有自动提升为浮点数型,结果为4。
溢出:当除数为0时,浮点数不会报错,但会溢出,会显示三个值:NaN(不是一个数),Infinity(正无穷),-Infinity(负无穷)。
布尔运算
布尔运算只有true或false两个值,一般只是用于关系运算
比较运算符:> >= < <= == !=
与运算:&&
或运算:||
非运算:!
关系运算符优先级:!, 比较运算符, == != ,&& ||
短路运算:布尔运算中特殊的运算
false && 任一结果值 到false就停止,因为与运算出现false整个结果集都为flase,所以之后的运算不继续,哪怕是5>0/0这样会爆出异常的算术。
同理:true || 任一结果值 ,到true就停止,或运算出现true,结果集为true,不会运算到||之后的运算。
三元运算: x = a?n,-n;
当a为正确是将n的值赋值x,a为false ,将-n的值赋值给x。