位运算符
1.Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
2.对于低于int类型(如byte.short.和char)的操作数总是先将类型自动转换为int类型后再移位。6
3.对于int类型的整数移a>>b,当b>32时,系统先用b对32求余(因为int类型只有32位)得到的结果才是真正移位的位数。
4.对于long类型的整数移位,a>>b,当b>64时,总是先用b对64求余(因为long类型是64位)得到的结果才是真正移位的位数。
5.
&:按位与
|:按位或
~:按位非
^:按位异或
<<:左移 向左移n位 乘以2的n次方
: 右移 向右移n位 除以2的n次方
:无符号右移
位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011
条件(三目)运算符
结构:
boolean表达式?表达式1:表达式2
(1)先计算boolean表达式的值
(2)如果boolean表达式的值为true,则整个表达式的值为表达式1的值
(3)如果boolean表达式的值是false,则整个表达式的值为表达式2的值
int a=-3
String r=a>0?"正数":(a==0?"0":"负数");
System.out.println(r); //结果为负数
运算符优先级
Java语言中大部分运算是从左向右运算的,只有单目运算符、赋值运算符、三目运算符是从右向左运算。