返回信息流public class Main {
public static void main(String[] args) {
int a = 1;
a=a<<32;
System.out.println(a);
}
}
结果输出是1是怎么回事?不该是0么
这是一条镜像帖。来源:北邮人论坛 / java / #48871同步于 2016/3/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
int 1左移32位为什么会变成1 ?
zhouyanbl
2016/3/28镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
【 在 fuxuemingzhu 的大作中提到: 】
: 可能是每次移动都把移出的这一位放到了符号位CF里边,然后带着符号位循环移动,所以移动32次恢复原状。
刚查到了,移动的位数是先会对32取模的,比方说移动65位跟移动1位是一样的