-4321>>>30在java中的运行结果为什么是3?(byte)a+(((byte)a)&0xFF)的运行结果为什么是254?

-4321>>>30在java中的运行结果为什么是3?(byte)a+(((byte)a)&0xFF)的运行结果为什么是254?以上结果请用机器... -4321>>>30在java中的运行结果为什么是3?(byte)a+(((byte)a)&0xFF)的运行结果为什么是254?以上结果请用机器数的计算说明! 展开
 我来答
your120
2012-02-13
知道答主
回答量:9
采纳率:0%
帮助的人:3.5万
展开全部
第一个问题:
>>>运算符是逻辑右移 高位补0
-4321的2进制表示是11111111111111111110111100011111 使用逻辑右移30位就是
(前面全是0)11 这个就是10进制的3啦
第二个问题:
你说的 a 是指 'a' 吗?? 如果是指'a'那么算出来 不是254啊, 具体是这样的。byte 'a'是十进制的97 那么 byte 'a'+byte 'a'=194 , 然后 &0xFF 其实就是取194在二进制时的最低8位 那么就是 194。 +的优先级是大于 & 的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式