异或运用--不借助第三个变量交换两个变量的值
2017-05-04 10:52
246 查看
在面试的时候经常遇到这样的题目:不借助第三个变量交换两个变量的值。今天在这里来详细分解以下这个题目。
int a=4;
int b=5;
声明两个整型变量a,b。计算出其二进制分别为a:0100,b:0101。下面开始正式计算
(1)a=a^b;
0100
^
0101
-----------------------
0001
此时a:0001,b不变(b:0101)。
(2)b=a^b;
0001
^
0101
----------------------
0100
此时a:0001,b:0100(即b的值为4)
(3)最后一步: a=a^b;
0001
^
0100
---------------
0101
此时a:0101,b:0100,转换二进制为十进制得到a=5,b=4;
int a=4;
int b=5;
声明两个整型变量a,b。计算出其二进制分别为a:0100,b:0101。下面开始正式计算
(1)a=a^b;
0100
^
0101
-----------------------
0001
此时a:0001,b不变(b:0101)。
(2)b=a^b;
0001
^
0101
----------------------
0100
此时a:0001,b:0100(即b的值为4)
(3)最后一步: a=a^b;
0001
^
0100
---------------
0101
此时a:0101,b:0100,转换二进制为十进制得到a=5,b=4;
相关文章推荐
- 通过异或运算实现两个变量的交换(不需借助第三个变量)
- 不借助第三个变量交换两个值
- 不借助第三个变量实现两个变量交换的思考
- 不借助第三个变量,交换两个变量值的3种方式
- 不借助第三个变量交换两个变量的值
- 不使用第三个变量交换两个变量的值之"异或"的实际应用
- 不借助第三个变量实现两个变量交换的思考
- 用按位异或运算符交换两个数,不引入第三个变量
- 不借助第三个变量来交换两个变量的值
- 不借助第三个变量交换两个数值类型变量的值
- 不借助第三个变量实现两个变量交换的思考
- 关于交换两个变量的不用第三个变量 异或的问题
- 用按位异或运算符交换两个数,不引入第三个变量
- JAVA不借助第三个变量实现两个变量交换的思考
- 不借助第三个变量来交换两个变量的值
- 不借助第三个变量交换两个变量的值
- 不借助第三个变量实现两个变量之间的值传递和交换
- 不借助第三个变量交换两个整数
- 不借助第三个参数实现两个变量的值互相交换
- 不借助第三个变量实现两个变量交换