专题课:综合案例3
1.数据交换
将a的值和b的值进行交换
积累思路:今后只要涉及到数据交换,就要联想到第三方变量
.
2.面试题:实现两个变量的数据交换,不允许定义第三方变量
.
在完成这道面试题之前,我们需要了解一个新的知识,关于异或,异或还有第二个特点
.
异或可以用来操作数据的运算
但它并非简单的加减运算
而是,将需要运行的数据,转换为二进制数据,将二进制数据的0当作false,1当作true(相同为0,不同为1)
相同为0,不同为1,得到的二进制数再用8421得出十进制为30
.
可知,异或可以操作数据进行运算,了解了异或可以操作运算后,我们便可以提出异或的第二个特点,
.
即:一个数字,被另外一个数字异或两次,该数本身不变 如图
a被b异或了两次,打印的数还是a本身。
.
根据异或的第二个特点,我们便可以解决上面的面试题
总结:^
1.相同为false,不同为true
2.一个数字,被另外一个数字异或两次,该数本身不变
但还是推荐使用第三方变量进行数据交换
.