为了账号安全,请及时绑定邮箱和手机立即绑定

设int a=-2,则表达式a>>>3的值为

设int a=-2,则表达式a>>>3的值为

qq_孤止辞_hmJMUZ 2019-11-23 17:22:03
查看完整描述

1 回答

?
明明如月

TA贡献4条经验 获得超1个赞

其实这个问题的关键是[二进制]和[操作符 >>> ] 的含义。

十进制如何转二进制可以自己百度学习。

Java中打印二进制可以使用

int i = -2;
System.out.println(Integer.toBinaryString(i));

而Java中整数4个字节,一个字节8位,即32位。

二进制中最高位是符号位, 1 代表负数,0 代表正数。

每一位右移会导致左侧位数不够,因此需要填充数据。

>> 表示带符号右移,即负数带符号右移前面补1,正数则前面补0。

>>> 表示无符号右移,即不管正负数左侧均补零。

-2的二进制表示为: 11111111111111111111111111111110

-2 无符号 右移3位为 00011111111111111111111111111111(右侧 110 丢了,左侧补三个0)

public static void main(String[] args) {
    int i = -2;
    System.out.println("-2的二进制形式:"+Integer.toBinaryString(i));
    int result = i >>> 3;
    System.out.println("-2>>>3 的二进制值:"+Integer.toBinaryString(result));
    System.out.println("-2>>>3的十进制表示:"+result);
}

运行结果为:

-2的二进制形式:11111111111111111111111111111110

-2>>>3 的二进制值:11111111111111111111111111111

-2>>>3的十进制表示:536870911


最后希望该同学可以动手编码看结果,其次自己了解二进制,了解常见的二进制运算。

查看完整回答
1 反对 回复 2019-11-23
  • 1 回答
  • 0 关注
  • 6426 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信