当前位置: 代码迷 >> Java相关 >> 关于位移操作的有关问题
  详细解决方案

关于位移操作的有关问题

热度:326   发布时间:2016-04-22 21:56:07.0
关于位移操作的问题
为甚么System.out.println(1<<31);
     System.out.println(-1<<31);返回的结果一样,都是-2147483648呢?请教各位大神

------解决方案--------------------
1 的二进制表示为:
00000000 00000000 00000000 00000001,左移31位后是:
10000000 00000000 00000000 00000000 
其10进制表示是:
-2147483648

-1 的二进制表示是:
11111111 11111111 11111111 11111111,左移31位是:
10000000 00000000 00000000 00000000 
其10进制表示也是:
-2147483648

也就是说,1,-1左移31位后,值一样,都是-2147483648。
------解决方案--------------------
http://www.ticmy.com/?p=46
  相关解决方案