读书人

关于位移操作的有关问题

发布时间: 2013-04-05 10:24:33 作者: rapoo

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

读书人网 >Java相关

热点推荐