利用位操作符实现两个整数的交换
2016-09-25 15:13
218 查看
位操作符包括:&(按位与),|(按位或),^(按位异或),位操作符针对每个数的二进制位进行操作。
利用位操作符实现两个整数的交换,先来举例说明:
int a=5;
int b=8;
低四位二进制表示 a 0 1 0 1
b 1 0 0 0
a^b -----------------
1 1 0 1
b 1 0 0 0
a^b^b -----------------
0 1 0 1 (a)
从例子中可以看出: a^b^b=a;
所以通过(按位异或操作符)可以实现两个整数的交换
代码实现如下:
int main()
{
int i = 2;
int j = 3;
i = i^j;
j = i^j;
i = i^j;
printf("%d %d\n", i, j);
system("pause");
return 0;
}
利用位操作符实现两个整数的交换,先来举例说明:
int a=5;
int b=8;
低四位二进制表示 a 0 1 0 1
b 1 0 0 0
a^b -----------------
1 1 0 1
b 1 0 0 0
a^b^b -----------------
0 1 0 1 (a)
从例子中可以看出: a^b^b=a;
所以通过(按位异或操作符)可以实现两个整数的交换
代码实现如下:
int main()
{
int i = 2;
int j = 3;
i = i^j;
j = i^j;
i = i^j;
printf("%d %d\n", i, j);
system("pause");
return 0;
}
相关文章推荐
- 利用C语言来实现交换两个变量的值,由终端输入两个整数给变量x、y,然后交换x和y的值后,输出x和y。 有不同的方法
- 为什么异或运算可以实现两个整数的交换,而无需借助第3个临时变量
- Java实现两个整数变量的交换
- iOS 利用运行时交换系统方法实现禁止同时点击两个按钮触发多个事件
- 《编程之美 》2.1 位运算实现—交换两个整数、求和、整数的二进制表达中1的个数
- 如何实现两个整数类型的数字交换
- 实现两个整数交换总结
- 实现两个整数交换
- VC++ 利用位运算实现两个整数的加法运算
- 实现两个整数值的交换(无中间变量)
- 利用位运算实现两个整数的加法运算,请代码实现,并作简要说明。
- 为什么异或运算可以实现两个整数的交换,而无需借助第3个临时变量
- 浅谈关于两个整数的交换函数的N种实现方式
- 请自己实现两个整数变量的交换(多种方法)
- 一行语句不越界实现交换两个整数
- 不使用第三个变量实现两个整数之间的交换
- 利用位运算实现两个整数相加
- 面试题 :实现两个整数变量的交换
- 不用辅助变量实现两个整数之间值的交换
- 不使用中间变量实现两个整数的交换