本帖最后由 尹志鹏 于 2013-5-10 08:53 编辑
我昨天才开始看毕老师的视频自学,新人第一次发帖,希望能解决疑惑。
移位运算符的规律为乘以或者除以2的移位数次方。用二进制方法来移位也是非常好懂的。
但是还是有一个问题困扰我于是自己编代码去实现。
当右边是负数时是否也具有这个特点呢?通过自己的代码查看到结果,知道区别于右边是正数。
疑问一:那右边是负数的时候是什么规律?
疑问二:右边是负数的时候又怎样用二进制去运算移位呢?
代码如下
System.out.println(-10>>-2);//-1
System.out.println(10>>-2);//0
System.out.println(-10<<-2);//-2147483648
System.out.println(10<<-2);//-2147483648
System.out.println(-10>>>-2);//3
System.out.println(10>>>-2);//0
System.out.println(-10>>2);//-3
System.out.println(10>>2);//2
System.out.println(-10<<2);//-40
System.out.println(10<<2);//40
System.out.println(-10>>>2);//1073741821
System.out.println(10>>>2);//2
|