永发信息网

java 中右移>>和逻辑右移>>的左操作数怎么运算的

答案:2  悬赏:70  手机版
解决时间 2021-02-22 23:21
java 中右移>>和逻辑右移>>的左操作数怎么运算的
最佳答案
0xa2 16进制,对应的十进制是162,对应的二进制是10100010(32位,前面的0不显示)

10100010>>>2 = 00101000 这个正好是十进制的40

(byte) 0xa2 由于byte的最大值是127,所以byte162要取模,结果是-94,对应的二进制是:11111111111111111111111110100010
11111111111111111111111110100010 >> 2 = 11111111111111111111111111101000,即十进制-24

>>和>>>的区别是:
>> 带符号右移,高位补充符号,正0负1
>>>不带符号右移,高位补充正0
有上面的记过得知,(byte) 0xa2 = -24这是个负数
所以(byte) 0xa2>>>2
会很大追问谢谢这么详细,但是为什么(byte) 0xa2>>>2 输出的是1073741800,而(byte) 0xa2>>2只输出-24追答(byte) 0xa2 = (byte) 162 = -94 = 11111111111111111111111110100010
11111111111111111111111110100010 >> 2 =

11111111111111111111111111101000 = -24
原因是 右移后,高位用符号补齐,移动两位,那么高位补齐两位,由于是带符号移动,那么就补两个1

11111111111111111111111110100010 >>> 2 =
00111111111111111111111111101000 = 1073741800
原因是 右移后,高位不用符号而是用0补齐,移动两位,那么高位补齐两位,那么就补两个0,然后再转化成十进制,就是这个大数了.
自然科学中,人为的去手动转化会比较麻烦,但是计算机世界,转化起来非常容易.建议你理解就好,真实的项目中,需要这么转化的非常少。
需要时,可以用Integer.toBinaryString(100) 传唤成二进制
全部回答
建议 要按2进制去看
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
艺利锁业安装维修在什么地方啊,我要过去处理
上海浦东英发充电器多少钱60伏0.5A
在上海徐汇区做烤瓷牙贵吗
我借给朋友50000元没写借条只有汇款凭证还不
帝字开头的好听的名称
洪钟闷雷的意思
以下为肾穿刺活检的禁忌证的是A.无症状性血尿
梦到剃头发
怎么取消4G手机的锁屏
桂林Dolequ 温馨公寓这个地址在什么地方,我
梦到大象在马路上看我一眼就过去了是什么意思
效果器光纤和同轴同时输入会有冲突吗它们都是
请围观这几颗狼牙如何?
北汽神宝x551.5T发动机缸是直喷吗?
下列各项中,对作品故事情节的叙述正确的一项
推荐资讯
【误会作文】误会 作文
短百褶裙搭配什么上衣
大伟食坊地址在什么地方,想过去办事
如和避免和舍友争吵?我很努力的改变了很多,但
四大禾冲地址有知道的么?有点事想过去
关于旧系统文件的删除问题
边看电视边吃水果心情说说
15岁女生冬天上学可不可以不穿内衣
女人如何能说会道
我愿用一生一世来爱你是那首歌
滨江外滩地址在什么地方,想过去办事
别人打钱到支付宝后转到卡里,我给别人打钱的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?