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

system.out.println(-8>>>2),输出1073741822。求解释。多谢

2012-11-03 
system.out.println(-82),输出1073741822。求解释。谢谢。system.out.println(-82),输出1073741822。求

system.out.println(-8>>>2),输出1073741822。求解释。谢谢。
system.out.println(-8>>>2),输出1073741822。求解释。谢谢。

[解决办法]
在JAVA中 int是一个含符号的变量
0x0~0x7FFFFFFF为正数,0x80000000~0xFFFFFFFF为负数。
其中0xFFFFFFFF表示的是-1,-8是用0xFFFFFFF8表示的。
把这个数无符号右移2位,就是0x3FFFFFFE;
把这个数有符号右移2位,就是0xFFFFFFFE;
(用计算器把它转换一下吧?)
[解决办法]
-8: 1111 1111 1111 1111 1111 1111 1111 1000 或者0xfffffff8
无符号右移两位: 0011 1111 1111 1111 1111 1111 1111 1110 或者0x3ffffffe

热点排行
Bad Request.