站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题问个移位运算的问题

问个移位运算的问题

摘要: 问个移位运算的问题


int a=-1;
System.out.println(a-#62;-#62;-#62;1);
输出结果为2147483647
我想问一下 这个结果怎么得来的
a的二进制是11111110 右移一位 因该是01111111吧 那也不该是这个结果啊
各位高手解释一下吧


-1的二进制应该是11111111吧
用的是补码吧


在java中int型数据是4字节的
2147483647=0x7FFFFFFF
a-#62;-#62;-#62;1是右移一位,高位补0


int 类型的值没有那么小吧,31位呢吧?
加一个符号位,一移位,正好就是那个数了
呵呵,我想应该是这样
我是新手,前几天学得移位,可能不对


自己顶一下


↑返回目录
前一篇: List.removeall的效率问题?
后一篇: 惊奇的J2SE发现