作者:傻傻傻傻
链接: https://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8
来源:牛客网
在java中,对于1<<32,那么会输出1;但是对于(1<<31)<<1,那么会输出0;其底层对左移做了一些处理,即如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位
链接: https://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8
来源:牛客网
在java中,对于1<<32,那么会输出1;但是对于(1<<31)<<1,那么会输出0;其底层对左移做了一些处理,即如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位