Java 移位操作符注意

来源:互联网 发布:金十数据官方网站 编辑:程序博客网 时间:2024/06/08 12:49

移位长度总是介于 0 到31 之间,如果左操作数是 long 类型的,则介于 0 到 63 之间。
这个长度是对 32取余的,如果左操作数是 long 类型的,则对 64 取余。
也就是说没有任何移位长度可以让一个 int 数值丢弃其所有的 32 位,或者是让一个 long数值丢弃其所有的 64 位。

        System.out.println(-1 << 32);        int tmp = -1 << 31;        System.out.println(tmp);        System.out.println(tmp << 1);

运行结果:

-1-21474836480