class weiyi 
{
     public static void main(String[] args)
     {
int a=-17,a1,a2;
a1=a>>>4;
System.out.println(a);
System.out.println(a1);
     }
}JAVA的所有数的有符号左移和右移都能得出预计的结果,而负数的五符号右移为什么的不出预计的结果呢?比如上面代码,a=-17,则在计算机中的表示应该为11101111,无符号右移四位 ,应该是00001110,编译出结果应该是12,可编译出来却是 268435454,这是什么原因?我用的是JAVA1.6.0_05。
http://topic.csdn.net/t/20060304/17/4592722.html,这里有个解释 ,我没有看明白。