当前位置: 技术问答>java相关
i = 34;i>>>=32;i为什么还是34??????????????
来源: 互联网 发布时间:2015-01-16
本文导语: public class Test{ public static void main(String[] args) { int i = 34; i >>>= 32; System.out.println(i); } } | 在Java 中的移位与 C/C++ 中不同,为了让移位有意义,把移位的位数先求模后再移,根据想移动的类型,模...
public class Test{
public static void main(String[] args) {
int i = 34;
i >>>= 32;
System.out.println(i);
}
}
|
在Java 中的移位与 C/C++ 中不同,为了让移位有意义,把移位的位数先求模后再移,根据想移动的类型,模数为32/64,规则是小于或等于 int 的主类型,以32 为模数,为 long 的类型以64为模数,也就是说:
int 是32位,那么实际移动的位数是 32%32 = 0,不移位
移动 37 位,实际移动的位数是 37%32 = 5 位。
你的例子中就是不移位,要注意了。
int 是32位,那么实际移动的位数是 32%32 = 0,不移位
移动 37 位,实际移动的位数是 37%32 = 5 位。
你的例子中就是不移位,要注意了。