首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

负数无符号右移解决方案

2012-03-19 
负数无符号右移class weiyi{public static void main(String[] args){int a-17,a1,a2a1a4System.ou

负数无符号右移
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,这里有个解释 ,我没有看明白。

[解决办法]
-17(10)= 11111111 11111111 11111111 11101111
-17〉〉〉4 = 00001111 11111111 11111111 11111110 = 268435454

[解决办法]
2L正解。

热点排行