黑马程序员技术交流社区

标题: 关于无符号右移的问题 [打印本页]

作者: 钟成军    时间: 2013-12-8 17:30
标题: 关于无符号右移的问题
>>>是无论最高位是什么,右移后,都用0补
设int a=-2,则表达式a>>>3的值为(   )。
(A)0        (B)3       (C)8    (D)-1

这一题的答案是C   不明白啊

-2的补码
1111 1111 1111 1110  无符号右移3位后 0001 1111 1111 1111
所以结果应该为 0001 1111 1111 1111(536870911),怎么没有这个选项呢?
用代码运行的结果是536870911


作者: 翼展哈哈    时间: 2013-12-8 17:37
好吧,我这个问题我也问吧,我在编译器上运行了一下
  1. int a= -2;
  2.                 System.out.println(a>>>3);
复制代码

结果也是:536870911,不在选项之内!
作者: ixiangfeng    时间: 2013-12-8 17:42
估计给的答案有误吧、、、
作者: wangchao1686    时间: 2013-12-8 17:45
不用怀疑了,题目错误拉,{:soso_e100:}
作者: 一个人旅行    时间: 2013-12-8 17:50
试了下也是大概题目错了吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2