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

解决方案 »

  1.   

    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。