永发信息网

num=32;num>>32后结果为啥是32

答案:1  悬赏:0  手机版
解决时间 2021-12-04 07:45
  • 提问者网友:雪舞兮
  • 2021-12-03 20:36
num=32;num>>32后结果为啥是32
最佳答案
  • 五星知识达人网友:野味小生
  • 2021-12-03 22:09
num>>32 是这个式子的值改变了,不是 num 本身;
a = num>>32; 即a的值才是改变的值,num 不变。 num>>= 32; 除非这样,类似 num = num>>32;追问system.out.println(num>>32)结果是32,刚才没写全。追答左、右移里一个比较特殊的情况是当左、右移的位数超过或等于该数值类型的最大位数时,编译器会用左、右移的位数去模类型的最大位数,然后按余数进行移位,如:
  int i = 32, j = 32; // 设int为32位
  i = i >> 32 // 32 % 32 = 0 右移0位,i还是32
  j = j >> 33; // 33 % 32 = 1 右移1位,j变成16
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯