位运算符
&按位与
&按位与:两位同时为1时返回1
如:(5&3)=1
0000 0000 0000 0101
0000 0000 0000 0011
0000 0000 0000 0001
同理:
| 按位或
按位或,只要有一位为1可返回1
。
。
。
<<、 >>、 >>> 左右移运算符
<<左移运算符
//<< : 左移(在一定范围内每向左移一位原来的值乘以2)
System.out.println(8 << 1);//16
System.out.println(8 << 2);//32
System.out.println(8 << 3);//64
>>右移预算符
// >> :右移 (在一定范围内每向右移一位原来的值除以2)
//正数:高位用0补
System.out.println(6 >> 1);//3
System.out.println(6 >> 2);//1
左移右移主要移的是补码
如-6的补码是:1111 1111 1111 1010
右移后的补码为:1111 1111 1111 1101(是-3的补码)
再右移的补码:1111 1111 1111 1110 (是-2的补码)
右移左边补1,左移右边补0
//负数:高位用1补
System.out.println(-6 >> 1);//-3
System.out.println(-6 >> 2);//-2
>>>无符号右移
左右移动都视为原码都补0
System.out.println(6 >>> 1);//3
System.out.println(6 >>> 2);//1
//负数:高位用0补
System.out.println(-6 >>> 1);//2147483645
System.out.println(-6 >>> 2);//1073741822
负数:
-6补码:1111 1111 1111 1010
右移后:0111 1111 1111 1101(原码表示为2147483645)
标签:右移,1111,java,System,day05,运算符,println,0000,out From: https://blog.csdn.net/oldzhongyi/article/details/137022055