源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

详解Java的按位操作符

  • 时间:2020-02-21 05:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:详解Java的按位操作符
Java的位操作符用来操作整数基本数据类型中的单个“比特”(bit),即代进制位。而我们知道比特就是0和1,那么,位操作就是对这些数据进行基本的操作。如果基本类型是char、byte或者short类型的数值进行移位处理,那么会转化成int类型,再进行移位的处理 [b]Java的按位操作符[/b] 按位操作符会对两个参数对应的位执行布尔代数运算,并最终生成一个结果。这个操作符有与(&)、非(~)、或(|)、异或(^)。我们知道单位“比特”(bit),即代进制位,都是0和1,异或(^)可能比较复杂点,两个操作数的位中,相同则结果为0,不同则结果为1。那么最基本的逻辑就像下面这个样子。 1&1 → 11&0 → 0~1 → 0~0 → 11|1 → 11|0 → 11^0 → 1    (1为01,0为00,那么结果就是01,还是1)1^1 → 0 [b]Java的移位操作符[/b] Java的移位操作符无非就是对二进制进行位移。 进行<<就是左移,也就是所有所有二进制往左边移动一个位,0010 0000 << 1 等于0100 0000 进行>>右移,也就是所有所有二进制往右边移动一个位,0010 0000 >> 1 等于0001 0000 。 可以试试下面的例子,整数型的也是变成二进制来计算:
class Test{
  public static void main(String[] args){
  int numInt1 = 3;
  int numInt2 = -3;
  System.out.println(numInt1<<1);
  System.out.println(numInt1>>1);System.out.println(numInt2<<1);
 System.out.println(numInt2>>1);

 } 
 }/* 输出的结果如下(www.breakyizhan.com)
6   ---> 0000 0011<<1 , 变为0000 0110
1   ---> 0000 0011>>1 , 变为0000 0001...1后面的1被顶出去了,所以结果为1
-6   --> 1111 1101<<1 , 变为1111 1010 取反+1= 0000 0110 -6
-2   --> 1111 1101>>1 , 变为1111 1110 取反+1= 0000 0010 -2 
*/
当然,还有Java的三元操作符,这部分的功能和if-else有点类似,具体更多内容可以看: [url=http://www.1sucai.cn/article/122783.htm]Java的三元操作符[/url] [b]总结[/b] 以上所述是小编给大家介绍的Java的按位操作符,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程素材网网站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部