首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于java中char,byte,short的移位操作有关问题

2012-01-22 
关于java中char,byte,short的移位操作问题在Think in Java中有这么一段话“对char,byte或者short进行移位处

关于java中char,byte,short的移位操作问题
在Think in Java中有这么一段话“对char,byte或者short进行移位处理,那么在移位进行之前,它们会自动转换成一个int。只有右侧的5个低位才会有用。这样可防止我们在一个int数里移动不切实际的位数。若对一个long值进行处理,最后得到的结果也是long。此时只会用到右侧的6个低位,防止移动超过long值里现成的位数。”
  这句话中的"只有右侧的5个低位才会有用"和“只会用到右侧的6个低位”到底什么意思呢?
  我在网络上找了很多。但都没有对此进行解释,我是JAVA的初学者,所以热切渴望大家能帮帮我,谢谢!
 

[解决办法]
2007-10-04 11:00:44 zephyr_cc
int类型是32位也就是2的5次幂 
如果你移32位以上,那么原来的数的信息会全部丢失,这样也就没有什么意义了 

2007-10-10 17:42:37 foamflower 
数值右端理解错了,其实是移位操作符右端的那个数值的低5位才有用,即 
X < <y; 
是指y的低5位才有用,即不能大于32。 

热点排行