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

java中左移要职溢出不舍去么?还有没有节操啦

2012-12-21 
java中左移高位溢出不舍去么?还有没有节操啦public class WY {public static void main(String args []){i

java中左移高位溢出不舍去么?还有没有节操啦
public class WY {
public static void main(String args []){
int i = 1<<31;
int j = 1<<32;
int p = 1<<33;

System.out.println("1左移31位"+i);
System.out.println("1左移32位"+j);
System.out.println("1左移33位"+p);

}
}

输出:1左移31位-2147483648
      1左移32位1
      1左移33位2
[最优解释]
首先这是溢出的表现 溢出是由于超出了范围 其数值的范围是最大值到最小值 而这些数可以看成一个圈 当出现溢出时就会找到下一个数字
[其他解释]
你想表达啥?
int型变量为32位(w),左移量为k,实际位移为 k mod w的结果 = 33 % 32 = 1
1左移1位为2

热点排行