提到这个^(异或)字符相信大多数人还是比较陌生的,毕竟平时用的实在是太少了。可是关键时候它却可以起到奇效。
异或字符呢针对的是数字在二进制中的变化,跟&(按位与)和 | (按位或)一样,不过区别是它的功能是让让二进制中同一位置上的数字相同为0,不同为1. 拿两个数举例:
通过这段代码我们可以明白了异或的原理,那么它实际中有什么用处呢?
既然设计师设计了这个操作符,那么肯定有他的用途,曾经有过一个公司的笔试题就曾考过异或这个操作符:不创建临时变量来交换两个数的值。
相信第一个看到这个题的人都有些蒙,因为我们都知道要交换变量必须使用一个临时变量,犹如我们要交换一瓶酱油和一瓶醋,必须使用一个空瓶,现在不让创建临时变量可怎么办呢?这里就需要我们的异或闪亮登场了:
我们可以看到短短三行代码,a和b的值直接交换了,这是为什么呢?下面我们来深入解读一下:
再说这个前,我们先看看这段代码:
那么我们来运行一下看看:
这里看到a的结果是6,我想现在肯定有不少小伙伴已经明白了,不过我们还是把它的处理过程再写出来
这里大家可以看出,异或好像有点消消乐的功能,如果有一样的数字,就会把它消掉,那么现在我们再来看前面那段交换a b的代码
现在看出^(异或)的神奇之处了吧。
好了,今天的介绍就到这了,喜欢的朋友记得点赞哦!