按位操作符

按位操作符 用来操作整数基本数据类型中的单个 bit  ,对两个参数中对应的位执行布尔代数计算,最终生成一个结果

 

1. 二元操作符

如果两个输入位都是1,  则按位 与  操作符&  生成一个输出位1,  否则生成一个输出位0, 

如果两个输入位有一个是1,  则按位  或  操作符 | 生成一个输出位1,  只有两个输入位都是0时, 才会生成一个输出位0.

如果  输入位的某一个是1,  但不全者是1,那位按位 异或 操作^  生成一个输出位1,

2.  一元操作符

按位 非 操作 ~也称为取反操作符,它只对一个操作数进行操作,  若输入0, 则输出1, 若输入1,  则输出0. 

3.  按位操作符可与等号=  联合使用,  以便合并计算和赋值:   &=, |=, ^= 都是合法的,  由于~  是一元运算符,所以不可与 =  联合使用.

4. 将布尔类型 作为一种单比特值对待,有些独特。可以对它执行近按位 与, 或,异或运算,但不能执行按位 非(为了避免与逻辑 非混淆)

对于布尔值,按位操作符具有与逻辑操作符相同的效果,只是它们不会中途  “短路”。 针对布尔值进行的按位运算为我们新增了一个  异或  逻辑操作符,它并未包括在  逻辑操作的列表中,

在移位表达式中,不能使用布尔运算,原因在  下一篇博客  解释

看一个示例:

public class Anweicaozuo {
 
 public static void main(String[] args) {
  int i = 0x10101010;
  int j = 0x01010101;
  int m = i^j;
  int n = i&j;
  int k = i|j;
  int l = ~i;
  int p = ~j;
  
  System.out.println("按位与 操作结果" + n +"  二进制值" +Integer.toBinaryString(n));
  System.out.println("按位或 操作结果" + k +"  二进制值" +Integer.toBinaryString(k));
  System.out.println("按位异或 操作结果" + m +"  二进制值" +Integer.toBinaryString(m));
  System.out.println("按位非 操作结果 l" + l +"  p"+p +"\n二进制值l " 
  +Integer.toBinaryString(l) +"  二进制值p "  + Integer.toBinaryString(p));
 }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值