**java小白快速入门二**
- 算术运算符
算术运算符包括 加(+)、减(-)、乘(*)、除(/)、取模(%)。
加,减,乘,除的运算规则同数学中运算规则一致。但是取模(%)与数学中略有不同。话不多说,上程序:
class demo2{
public static void main(String[] args){
int a = -16%-3;
int b = -16%3;
int c = 16 % -3;
System.out.println(a);
System.out.println(b);
System.out.println©;
}
}
如果以数学的思维去看待这个程序,所得出的结果应该为:
1
-1
-1
但是在Java中运行却不是这个结果:
注:在java中取模运算结果的正负与模数的符号保持一致。 - 逻辑运算符
逻辑运算符包括与(&&和&)、或(||和|)、非(!)。
除了非为单目运算符之外,其余符号都为双目运算符。非比较容易理解,对逻辑运算取反。
与或表达式的使用见以下图表
- 位运算符
&、|、~(非)、^(异或)、>>、<<、>>>
位运算符的运算都是二进制运算,将数据转化为二进制按位进行计算。举个栗子:
8 & 7;这个表达式转化为二进制表达式位00001000 & 00000111 = 00000000,前一个数据与后一个数据的位数要一一对应,然后相与。
对于|,位与位之间相或。
异或也是同样的道理
~(非)为单目运算符,对数据按位取反,将二进制数据的零变更成一,将一变更成零。
右移>>,左移<<
举个栗子:
如 a = 00110011,a>>2,则a = 00001100;
数据右移两位,高位补零,低位溢出部分去掉。左移运算符也是同样的道理,高位溢出部分去掉,低位补零。话不多说,上程序
class demo2{
public static void main(String[] args){
int a = 17; //二进制为 00010001
int b = a >> 2; //右移两位二进制为 00000100 十进制为4
int c = b << 2;//左移两位二进制为 00010000 十进制为16
System.out.println©;//预期结果为16
}
}结果如下
4.三目运算符
三目运算符格式为 ?表达式1:表达式2;
表达式1和表达式2可以为不同的数据类型,此运算符也存在着数据类型的升级( 重要)
例如:
class demo2{
public static void main(String[] args){
int a = 1;
int b = ((a == 1) ? 12:12.5);
System.out.println();
}
}
结果如下:
按理说b 应该为整型的12,而不是double类型,说明在三目运算符启动时发生了数据类型的转化,要十分注意此处的陷阱