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