【java】位运算符(<<,>>,>>>)
2017-04-19 15:31
169 查看
1,规则
java中的位运算符,用于操作二进制。包括有“&,|,^,~,<<,>>,>>>”&:按位与,“只有两个都是1,结果才是1。”
|:安位或,“只要有一个1,结果就是1。”
^:按位异或,“相同的为0,不同的为1。”
~:按位取反,“1就是0,0就是1。”
<<:按位左移,“表示将二进制向左位移,右边填0。”
>>:按位右移,“表示将二进制向右位移,左边填符号位。”
>>>:无符号右移动,“表示将二进制向右位移,左边填0。”
2,移位运算符注意事项和技巧
(1)移位运算符适用类型有byte、short、char、int、long(2)对低于int型的操作数将先自动转换为int型再移位。
(3)对于int型整数移位a>>b,系统先将b对32取模,得到的结果才是真正移位的位数。例如:a>>33和a>>1结果是一样的,a>>32的结果还是a原来的数字。
(4)对于long型整数移位时a>>b ,则是先将移位位数b对64取模。移位不会改变变量本身的值。如a>>1;在一行语句中单独存在,毫无意义。
(5)x>>1的结果和x/2的结果是一样的(因此以后要 求解n除以2,可以用n>>1),x<<2和x*4的结果也是一样的。总之,一个数左移n位,就是等于这个数乘以2的n次方,一个数右移n位,就是等于这个数除以2的n次方。
3,如何用程序实现求2的x次方。
y=1<<x;4,参考文章
java移位运算符相关文章推荐
- java的位运算符详解实例——&、^、|、~、<<、>>、>>>
- java 移位 位运算符 >>,<<,>>>
- JAVA/Android位运算符——左移(<<)、右移(>>)、与(&)、非(~)、或(|)、异或(^) .
- 关于java的位运算符:<<与>>>
- java按位运算符(&、|、~、^) 移位操作符(>> << >>> )
- java(位运算符)两个大于(小于)号,<<,>>
- java的位运算符(>>,<<,>>>,&,|)
- 一些页面自动跳转的实现 转自<a href="http://www.blogjava.net/Jcat/archive/2006/11/22/82831.html" target="_blank">http://www.blogjava.net/Jcat/archive/2006/11/22/82831.html</a>
- java环境变量配置<转>
- Java设计的一些原则<不断更新>
- [Java Generics] get T.Class from &lt;T&gt;
- <转载>java中的集合
- <转载>java中synchronized用法
- <转> 面试java高级工程师、项目经理等的常见问题
- Set<String> java.util.Map.keySet()
- Java 时间转化工具类 Date <->String<->Timestamp
- java 调用 c# webservice 压缩 List<string>示例
- Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
- Java导出pdf<1>
- [原创]表达式求值:经典算法 <Java版本>