异或运算进行整数交换的陷阱
来源:互联网 发布:江西网络问政 编辑:程序博客网 时间:2024/05/02 01:14
大家都知道,可以使用异或运算在不使用额外内存的情况下,进行两个整数的交换。
void swap(int &x, int &y){ x^=y; y^=x; x^=y;}
但是,当x==y时,这样交换有个致命的缺陷,交换后x=0,y=x;
因此,使用异或运算进行整数交换时,必须首先判断两个数是否相等,完整代码如下:
void swap(int &x, int &y){ if(x==y) return; x^=y; y^=x; x^=y;}
0 0
- 异或运算进行整数交换的陷阱
- 用异或交换两个整数的陷阱
- 用异或交换两个整数的陷阱
- 用异或交换两个整数的陷阱
- 用异或交换两个整数的陷阱
- 用异或交换两个整数的陷阱
- 用异或交换两个整数的陷阱
- java异或运算交换两个数的陷阱
- 用异或进行两个数交换的陷阱
- 异或运算实现两个整数的交换
- 通过异或运算交换两个整数的值
- 异或运算交换两个整数
- 异或交换两数的陷阱
- 关于异或的用法1交换整数(注意陷阱)2求整数序列中差的一个值
- Java中异或运算实现两个整数的交换以及其功能函数实现
- 基于异或(^)运算进行数值交换的可行性分析
- 使用异或运算符对整数进行加密
- 为什么异或运算可以实现两个整数的交换,而无需借助第3个临时变量
- CentOS 7 巨大变动之 firewalld 取代 iptables
- UOJ Round5总结
- java服务器端调用JPush极光推送api推送通知消息
- 迁移学习(Transfer Learning)
- Leetcode_141_Linked List Cycle
- 异或运算进行整数交换的陷阱
- uva 512 追踪电子表格中的单元格
- Tautology POJ 3295
- uva679Dropping Balls 入门经典II 第六章数据结构基础 例题6-6
- Parencodings
- curl 和 Wget 的比较
- hdu 1864 最大报销额 DP
- uBOOT 错误1
- Vim (二) 光标的跳转