java对位移运算越界的优化
2007-09-21 19:56
218 查看
考察下面的代码输出结果是多少?
int a=5;
System.out.println(a<<33);
按照常理推测,把a左移33位应该将a的所有有效位都移出去了,那剩下的都是零啊,所以输出结果应该是0才对啊,可是执行后发现输出结果是10,为什么呢?因为Java语言对位移运算作了优化处理,Java语言对a<<b转化为a<<(b%32)来处理,所以当要移位的位数b超过32时,实际上移位的位数是b%32的值,那么上面的代码中a<<33相当于a<<1,所以输出结果是10.
int a=5;
System.out.println(a<<33);
按照常理推测,把a左移33位应该将a的所有有效位都移出去了,那剩下的都是零啊,所以输出结果应该是0才对啊,可是执行后发现输出结果是10,为什么呢?因为Java语言对位移运算作了优化处理,Java语言对a<<b转化为a<<(b%32)来处理,所以当要移位的位数b超过32时,实际上移位的位数是b%32的值,那么上面的代码中a<<33相当于a<<1,所以输出结果是10.
相关文章推荐
- java中关于位移运算的一些小问题
- JAVA的位移运算巧方法
- java位移运算导致数值为负数
- JAVA的位移运算巧方法
- Java 程序优化:字符串操作、基本运算方法等优化策略
- java 位移运算
- java java.lang.Long详解之三 大显神通的位移运算(转)
- java 位移运算
- Java 程序优化:字符串操作、基本运算方法等优化策略
- Java 字符串操作、基本运算方法等优化策略
- java位移运算
- Java 程序优化:字符串操作、基本运算方法等优化策略
- java 直观的位移运算例子
- Java字符串操作、基本运算方法等优化策略
- Java 程序优化:字符串操作、基本运算方法等优化策略
- 位移运算越界怎么处理
- Java中的位运算优化:位域、位图棋盘..(zz)
- Java 程序优化:字符串操作、基本运算方法等优化策略(二)
- java之位移运算
- Java的位移运算