java移位运算

java内部用补码表示数字,请问移位运算>>是在补码上操作还是在原码上操作... java内部用补码表示数字,请问移位运算>>是在补码上操作还是在原码上操作 展开
 我来答
帽子狗
推荐于2016-02-12 · TA获得超过942个赞
知道小有建树答主
回答量:611
采纳率:50%
帮助的人:555万
展开全部
这个试一下就知道了
比如-2 假定只有8位 1000 0010
如果是原码 那么就是1000 0010 >>1 =1000 0001 这就是-1
如果是补码 就是1111 1110>>1 =1011 1111 这就是-63了 (当然 如果是其他位数肯定不是-63)
不过-2>>1是-1 所以是操作的原码
追问
Java不是用补码在内存中存储数字的吗
追答
日了狗 昨天太晚迷迷糊糊 怎么说是原码  位操作都是操作的补码 真不好意思.. 

>>右移是带符号右移 1111 1110>>1是等于 1111 1111 这正好是负1的补码
原码是1000 0010>>1右移变成 1100 0001 这个换成整数是(1011 1111 )=-63

不好意思 我搞混了 抱歉抱歉
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式