java << >> >>> 的用法 以及能给一个解释不,没看懂啊!
代码贴上
Java code
package day21;
public class chartoint {
int i = 7 ;
int j = -7;
public static void main(String []args){
System.out.println(a.i>>3);
System.out.println(a.j>>>28);
System.out.println(a.j>>2);
System.out.println(a.j<<2);
}
}
结果是 0 15 -2 -28 为什么啊 !!!
------解决方案--------------------
7 二进制表示为:
0000 0000 0000 0000 0000 0000 0000 0111
>>带符号右移。移3位为:(高位0表示正数)
0000 0000 0000 0000 0000 0000 0000 0000
10进制为0。
-7 二进制表示:
1111 1111 1111 1111 1111 1111 1111 1001
>>> 是无符号右移(空出高位补零)移28位后是:
0000 0000 0000 0000 0000 0000 0000 1111
10进制表示15。
-7>>2 是:
1111 1111 1111 1111 1111 1111 1111 1110
10进制为 -2。
-7<<2 是(右边补零)
1111 1111 1111 1111 1111 1111 1110 0100
10进制是-28。
是