根据Java语言规范
15.19. Shift Operators(略作解释):
如果左侧 *** 作数的提升类型为
int,则 仅将右侧 *** 作数的最低5位用作
移位距离。就像右手 *** 作数受到&掩码值0x1f或的按位逻辑AND运算符一样0b11111。实际使用的移位距离因此总是在范围0到31,包括端值。
这意味着(例如)
33作为6位二进制数
100001,
00001在使用前会减少为5位。因此
x << 33与相同
x << 1。
欢迎分享,转载请注明来源:内存溢出
根据Java语言规范
15.19. Shift Operators(略作解释):
如果左侧 *** 作数的提升类型为
int,则 仅将右侧 *** 作数的最低5位用作
移位距离。就像右手 *** 作数受到&掩码值0x1f或的按位逻辑AND运算符一样0b11111。实际使用的移位距离因此总是在范围0到31,包括端值。
这意味着(例如)
33作为6位二进制数
100001,
00001在使用前会减少为5位。因此
x << 33与相同
x << 1。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)