深度理解按位异或运算符
2010-06-16 15:03
197 查看
参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:
0^0=0, 1^0=1, 0^1=1, 1^1=0
例如: 10100001^00010001=10110000 0^0=0,0^1=1 0异或任何数=任何数
1^0=1,1^1=0 1异或任何数-任何数取反
任何数异或自己=把自己置0
(1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以 将数与00000110进行按位异或运算。
10100001^00000110=10100111 //1010 0001 ^ 0x06 = 1010 0001 ^ 6
(2)通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。例如交换两个整数 a,b的值,可通过下列语句实现:
a=10100001,b=00000110
a=a^b; //a=10100111
b=b^a; //b=10100001
a=a^b; //a=00000110
(3),在汇编语言中经常是变量置零:
xor a,a
0^0=0, 1^0=1, 0^1=1, 1^1=0
例如: 10100001^00010001=10110000 0^0=0,0^1=1 0异或任何数=任何数
1^0=1,1^1=0 1异或任何数-任何数取反
任何数异或自己=把自己置0
(1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以 将数与00000110进行按位异或运算。
10100001^00000110=10100111 //1010 0001 ^ 0x06 = 1010 0001 ^ 6
(2)通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。例如交换两个整数 a,b的值,可通过下列语句实现:
a=10100001,b=00000110
a=a^b; //a=10100111
b=b^a; //b=10100001
a=a^b; //a=00000110
(3),在汇编语言中经常是变量置零:
xor a,a
相关文章推荐
- 深度学习中dropout策略的理解
- [置顶] 我的Blog文章索引::机器学习方法系列,深度学习方法系列,三十分钟理解系列等
- 深入理解按位异或运算符
- 深度学习超参数简单理解------>learning rate,weight decay和momentum
- 深度学习深理解(八)- 结构化机器学习项目
- C# 深入理解按位异或运算符
- 产品线 产品宽度 产品的深度 产品的相关度(理解工厂模式)
- java 之深度理解this关键字
- 深度理解拉格朗日乘子法、KKT条件与线性规划对偶理论的微妙关系
- hive深度理解与调优
- 深度学习GPU卡的理解(四)
- unity销毁层级物体及 NGUI 深度理解总结
- 深度学习入门必须理解这25个概念
- 深度学习与计算机视觉系列(5)_反向传播与它的直观理解
- 深度理解Jquery 中 offset() 方法
- 深度理解依赖注入(Dependence Injection)
- 理解深度学习中的学习率及多种选择策略
- 深度理解依赖注入(Dependence Injection)
- 深度理解Python import 功能
- 对svn分支合并类型和深度的理解