Java Integer左移的奇怪结果

Java Integer左移的奇怪结果,第1张

Java Integer左移的奇怪结果

根据Java语言规范

15.19. Shift Operators
(略作解释):

如果左侧 *** 作数的提升类型为

int
,则 仅将右侧 *** 作数的最低5位用作
移位距离。就像右手 *** 作数受到
&
掩码值
0x1f
或的按位逻辑AND运算符一样
0b11111
。实际使用的移位距离因此总是在范围
0
31
,包括端值。

这意味着(例如)

33
作为6位二进制数
100001
00001
在使用前会减少为5位。因此
x << 33
与相同
x << 1



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5091735.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存