这句话该如何理解

happysmhzp 2011-05-28 11:09:01
-1>>32 等于-1 而不是0,因为移位操作符只使用其右操作数的第5位作为移位长度。最好能说详细点。先谢了。
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
凡心未灭 2011-06-02
  • 打赏
  • 举报
回复
教材上刚有,我按教材的意思说一下:
对于式子:int a>>b
移为之前要把要移的位数(b)与被移的位数(a)求余数,然后移动余数个(a%b)位数。
这里-1默认为int型,32为,移动的位数也是32,求余为0,移动0个,为原数
即:
int a<<32=a
long b<<64=b
wl_ldy 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wl_ldy 的回复:]

byte a = -1;转换成int为 11111111111111111111111111111111
int f = a>> 1; // 有符号右移1位,左侧缺的位以符号位补齐,11111111111111111111111111
结果f=-1吧...
[/Quote]
不好意思,看错了...
wl_ldy 2011-06-02
  • 打赏
  • 举报
回复
byte a = -1;转换成int为 11111111111111111111111111111111
int f = a>> 1; // 有符号右移1位,左侧缺的位以符号位补齐,11111111111111111111111111
结果f=-1吧...
happysmhzp 2011-06-02
  • 打赏
  • 举报
回复
没人知道吗?

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧