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

关于位移操作的有关问题

2013-04-05 
关于位移操作的问题为甚么System.out.println(131)System.out.println(-131)返回的结果一样,都是-21

关于位移操作的问题
为甚么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

热点排行