【啃透Java基础知识】3Java基本运算符
参考资料:《Java 核心技术卷 I》
本章介绍了关于Java基本运算符的知识。
Java运算符
原码,反码,补码
计算机中的数都是以二进制的形式存储的。其中二进制的最高位是符号位,0为正,1为负。
正数的原码,反码,补码形式相同。
负数的反码为原码符号位不变,其他位按位取反。补码为反码加1。
计算机中任何数的运算都是补码形式的运算,而结果按照原码显示。
算术运算符
Java中,有+、-、*、/来表示加减乘除。
除法运算中,若两个操作数都是整数,则结果也是整数,这被称为整数除法。而其中若有一个及以上的浮点数,则为浮点除法。
Java中%表示取余,意味对操作数取余数。如:
| |
在Java中,整数和浮点数都可以取余操作。对于浮点数取余,可以将其等效为以下过程:
a%b => a-(int)(a/b)*b
Java中还有自增运算符++和自减运算符--。这两种运算符为单目运算符,可以放在变量的前面或者后面,如:
++i与i++。
两者的区别在于:
a = ++i; => i += 1; temp = i; a = temp;
a = i++; => temp = i; i += 1; a = temp;
辨析:
| |
赋值运算符
赋值运算符=的左侧必须是变量,而右侧可以是变量,常量以及表达式。
赋值运算符可以和算术运算符相结合,如:
x += 1;等价于x = x + 1;
逻辑运算符
逻辑运算符中包括关系运算符和逻辑运算符。
关系运算符
常见的关系运算符有
==><>=<=
这些运算符的用法与数学上一致,当表达式成立时,会返回true否则返回false。
逻辑运算符
逻辑运算符包括与&&、或||、非!。
其中
当&&两侧的表达式全为true时,返回true,否则返回false。
当||两侧表达式至少有一个为true时,返回true,否则返回false。
当!后的表达式为true时,返回false,反之亦然。
当&&所连接的第一个表达式为false时,整个表达式的结果必定为false,因此第二个表达式不会执行。
当||所连接的第一个表达式为true时,整个表达式的结果必定为true,因此第二个表达式不会执行。
条件运算符
条件运算符? :是一个三目运算符。表达式为:
condition ? expression1 : expression2
其意为当condition为true时,表达式的值为expression1否则为expression2。
位运算符
位运算符有与&、或|、异或^、非~,以及移位运算符。
- 与
&对两操作数的补码进行逐位与操作。 - 或
|对两操作数的补码进行逐位或操作。 - 异或
^对两操作数的补码进行逐位异或操作。 - 非
~对操作数的补码进行逐位取反操作。
移位运算符有算数左移<<、算数右移>>和无符号右移>>>。
- 算数左移
<<对操作数的补码向左移位,低位用0补全。 - 算数右移
>>对操作数的补码向右移位,高位用符号位补全。 - 无符号右移
>>>对操作数的补码向右移位,高位用0补全。
数学函数
对于Java基本运算符没覆盖到的一些数学运算,Java提供了一个Math类,其中包含可能会用到的各种数学函数。如:
- Math.sqrt(x)
对x进行开方。
- Math.pow(x, a)
计算x的a次方。
- Math.sin(x)
求出sin x。
- Math.cos(x)
求出cos x。
- Math.tan(x)
求出tan x。
- Math.atan(x)
根据正切值x求角度。
- Math.exp(x)
求e的x次方。
- Math.log(x)
求$ln x$。
- Math.log10(x)
求$log_{10}x$。
还有常用常量:
Math.PI
Math.E
微信
wuqimotou