专题课:综合案例3

1.数据交换

将a的值和b的值进行交换

积累思路:今后只要涉及到数据交换,就要联想到第三方变量

.

2.面试题:实现两个变量的数据交换,不允许定义第三方变量

.

在完成这道面试题之前,我们需要了解一个新的知识,关于异或,异或还有第二个特点

.

异或可以用来操作数据的运算

但它并非简单的加减运算

而是,将需要运行的数据,转换为二进制数据,将二进制数据的0当作false,1当作true(相同为0,不同为1)

相同为0,不同为1,得到的二进制数再用8421得出十进制为30

.

可知,异或可以操作数据进行运算,了解了异或可以操作运算后,我们便可以提出异或的第二个特点,

.

即:一个数字,被另外一个数字异或两次,该数本身不变 如图

a被b异或了两次,打印的数还是a本身。

.

根据异或的第二个特点,我们便可以解决上面的面试题

总结:^

1.相同为false,不同为true

2.一个数字,被另外一个数字异或两次,该数本身不变

但还是推荐使用第三方变量进行数据交换

.

3.数组中的元素交换:数组中的第一个元素和最后一个元素进行交换

posted @ 2024-10-15 20:59  直実  阅读(7)  评论(0编辑  收藏  举报