这段描述是什么意思?

junnyfeng 2013-05-31 08:08:00


这段描述出自《java编程思想第4版》,谁能解释下这个2的5次方和 int是32位是怎么关联上的?

我觉得毫无关系。。
...全文
184 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tick-Tock 2013-06-01
  • 打赏
  • 举报
回复
引用 2 楼 junnyfeng 的回复:
1楼,你说的我知道。 如果想不超过一个int的范围,我认为位移可以是 1 <= x < 32 , 为什么这里说 要 <= 5.
因为 0000 0000 0000 0000 0000 0000 0001 1111 就是32,数数几个1
junnyfeng 2013-06-01
  • 打赏
  • 举报
回复
If you shift a char, byte, or short, it will be promoted to int before the shift takes place, and the result will be an int. Only the five low-order bits of the right-hand side will be used. This prevents you from shifting more than the number of bits in an int. right-hand side指的应该是1>>8的8那个部分 像这样的描述就明白了:低5位二进制是指移位操作符的右操作数,而不是被操作数本身。 这作者写得晦涩,直接说不能超过32不就得了。翻译没表达清楚,右边的低5位,操作数的低5位也在右边的,这就让人产生误会。
junnyfeng 2013-05-31
  • 打赏
  • 举报
回复
1楼,你说的我知道。 如果想不超过一个int的范围,我认为位移可以是 1 <= x < 32 , 为什么这里说 要 <= 5.
Tick-Tock 2013-05-31
  • 打赏
  • 举报
回复
你理解错了 x << y y <= 32 才有意义,因为int是32位的 右端5位指的是 y 的二进制的右五位

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧