位运算符的用法>非.与,或,异或

三种运算符均针对二进制

非!:是一元运算符。对一个二进制的整数按位取反,输入0则输出1,输入1则输出0。

例:

0100	-(4) 	输入
1011	-(11)		输出

与&:二元运算符,两个输入。按位计算。输入都是1则输出1;否则输出0;(一0得0)

通俗来讲两个都是1才是1.否则是0

	0100	-(4)	输入1
	1011	-(11)	输入2
 &	0000 -(0)	输出

或|:二元运算符,两个输入。按位计算。输入都是1则输出1;否则输出0;(一0得0)

通俗来讲两个只要有一个是1就是1.否则是0

	0100  -(4)	输入1
	1011  -(11)输入2
|	1111  -(15)输出

异或^ :二元运算符。并不是独立存在的位运算符,而是组合而成。可以用其他的运算符等价表示(相同为0,不同为1)
异或运算按位比较,当输入的两个位相同时输出0,不相同时输出

通俗来讲两个位相同时输出0,不相同时输出

例:将10101101左5位反转
		10101101
		11111000	^
		0101101

异或的特性:
1、交换律 可任意交换运算因子的位置,结果不变

如:a^ b==b^a

2、结合律(即(a ^ b) ^ c == a^ (b^c))

3、对于任何数x,都有x^ x=0,x^0=x,同自己求异或为0,同0求异或为自己

4、自反性 A ^ B ^ B = A ^ 0 = A ,连续和同一个因子做异或运算,最终结果为自己
5、一个数同自己进行偶数次异或运算结果为0、
一个数同自己进行奇数次异或运算结果为本身。

用处

判断奇偶数

7&1==1;判断是否为奇数

7&1==0;判断是否为偶数

图解:


进行两数互换

int a=5;
int b=10;
a=a^b^(b=a);
输出后a=10,b=5

自主进行图解,加深理解,知识不是看会的是动手学会的!!!

如果还有实用的用处,请各路大佬留个言,求求求

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值