按位异或运算交换两个变量的值原理
来源:互联网 发布:庄小威离婚知乎 编辑:程序博客网 时间:2024/05/17 03:24
按位异或运算是指两个相应的二进制相同时结果为0,否则为1。
若欲交换两个变量的值,而又不借助其他的中间变量,那么在C++中可以用下面的语句:
(1)一个变量按位异或自己的结果为0,即:a ^ a = 0;
(2)一个变量按位异或0的结果为自己,即:a ^ 0 = a;
于是,在上面的三条语句中,语句1可以看做把变量a、b保存到a的存储空间中(当然这只是一种理解方式);语句2消去了b(原理1),于是剩下了a(原理2),赋值到b的存储空间,此刻,b变量已经得到了a的值;语句3中,原本a变量存储空间内已经同时保存了a、b,此刻,b已经变成了a,所以两个按位异或后,便消去了a(原理1),只剩下了b(原理2),将它赋值给a,至此,交换变量的过程结束。
0 0
- 按位异或运算交换两个变量的值原理
- 程序设计中利用“按位异或”运算交换两个变量的值原理
- 程序设计中利用“按位异或”运算交换两个变量的值原理
- 使用异或运算交换两个变量的危险
- 使用异或运算对交换两个变量的数据
- (1.1.2)C的|、||、&、&&、异或、~、!运算 (交换两个值,不用临时变量)
- C 不引入第三变量交换两个数的值(异或运算符^)
- C/java语言 利用异或运算来交换两个变量的值
- 通过异或运算交换两个整数的值
- java实现位运算交换两个变量的值
- 位运算---不用额外变量交换两个整数的值
- 位运算之两个变量的交换
- 按位异或交换两个变量时的一个陷阱
- 异或操作交换两个变量的值
- 应用位异或交换两个变量的值
- 两个变量异或法交换值
- 交换两个数不使用第三方变量=!!=深入理解按位异或运算符
- 交换两个数不使用第三方变量=!!=深入理解按位异或运算符
- 如何在C语言中调用shell命令
- 实时推荐系统的3种方式
- 三种素数筛选方法
- ppt制作
- 用Javascript编写Chrome浏览器插件--(一)
- 按位异或运算交换两个变量的值原理
- TinyOS的个人见解4之任性的cc2538
- iOS开源项目和库
- js 将json字符串转换为json对象的方法解析
- iOS 设计模式——单例模式
- 开发人员---沟通的重要性
- cf B. Wilbur and Array
- iOS相机与相册的调用常用代码
- 转 WWDC 2013 Session笔记 - iOS7中的ViewController切换