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

为什么-1无符号右移-1位等于+1?

为什么-1无符号右移-1位等于+1?

素胚勾勒不出你 2019-03-23 18:19:23
 short a = -1 ;    System.out.println(Integer.toBinaryString(a)) ;    a >>>= -1 ;    System.out.println(Integer.toBinaryString(a)) ;//输出a为1.无符号右移-1位是怎么移动的呢? 该怎么思考这个问题?
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

一般位移的位数只取最后几位,相当于对a的位数取模再右移。
-1 mod 16就等于15了。
不清楚java的细节,不过看起来也是这么做的。

查看完整回答
反对 回复 2019-04-16
  • 1 回答
  • 0 关注
  • 517 浏览

添加回答

举报

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