java位运算符(& | ^ ~)

按位与运算符

运算规则: 同1为1,其他为0 比如:0&0=0 0&1=0 1&0=0 1&1=1
参与比较的两个数: 转化为2进制比较
例如:(12&3)

		12------------11003------------0011        注意:这里如果位数不够,加0填充;
 结果就是-------------0000
然后将二进制转化成为十进制:  0      
        (12&3)==0

按位或运算符

运算规则: 有1为1,其他为0 比如:0|0=0 0|1=1 1|0=1 1|1=1
参与比较的两个数: 转化为2进制比较
例如:(13|2)

     13--------1101
      2--------0010     注意:这里如果位数不够,加0填充;
 结果是--------1111
 转化成为十进制:15
 (13|2)==15     

异或运算符

运算规则: 相同为0,不同为1 比如:0^0=0 0^1=1 1^0=1 1^1=0
参与比较的两个数: 转化为2进制比较
例如:(15^14)

	15---------1111
	14---------1110
结果是---------0001
转化成为十进制:	1
(15^14)==1

取反运算符

运算规则: 本身的相反数-1
例如:(~14)

     ~14-------(-14-1)
结果是:-15     

注意:取反运算符的优先级要高于前两位
例如(12&~6)

要先算~6
	  ~6------(-7)
	  7-------00000111
7的反码-------11111000
7的补码-------11111001
    -7-------11111001
    12-------00001100
结果是:------00001000
十进制是:812&~6==8       可见取反的运算符高于前两位

复合赋值运算符

&= a&=b 相当于 a=a&b
|= a|=b 相当于 a=a|b
^= a^=b 相当于 a=a^b

	int a=15;
	int b=14;
	System.out.println(a^=b);  //  1
	System.out.println(a);	   //  1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值