JAVA基础知识

1. ~:取反
System.out.println(~8) //结果为-9

8的二进制为"00001000"
取反后得到结果的补码"11110111"
在根据补码的计算规则反向计算:“11110111”-1=“11110110”
去掉符号位后取反“0001001” ==9
最后加上符号位结果就是-9

2. &:按位与
System.out.println(8&4) //结果为0

8的二进制为"00001000"
4的二进制为"00000100"
按位与(上下两个值都为1,结果则为1)的结果为“00000000”
所以结果为0

3. ^:异或
System.out.println(8^4); //结果为12

8的二进制为"00001000"
4的二进制为"00000100"
按位异或(上下两个值不一样并且有一个为1,结果则为1)的结果“00001100”==12
所以结果为12

4. |:按位或
System.out.println(8|4); //结果为12

8的二进制为"00001000"
4的二进制为"00000100"
按位或(上下两个值至少有一个为1,结果则为1)的结果“00001100”==12
所以结果为12

5. >>:右移
System.out.println(8>>3); //结果为1

8>>3相当于8/2/2/2,运算符后面数字为几,则除以几个2

6. <<:左移
System.out.println(8<<3); //结果为64

8<<3相当于822*2,运算符后面数字为几,则乘以几个2

你可能感兴趣的:(Java,运算符,Java,运算)