更有效率的数据交换

^是异或,

如果是:

int x = 8;
int y = 9;

让互换x和y,通常的做法是:

int demo=x;

  x=y;

  y=demo;

但是用了异或之后就可以这样:

  x=x^y;
  y=x^y;
  x=x^y;

这样容易记住,而且用了更底层的运算方式,计算速度更快

如果你不太懂,我就稍微解释一下:

异或两个相同的int数,原来的值不改变,

第一句就不用解释了;

第二句因为第一句x=x^y;之后再第二句中的x相当于是x^y赋值给y相当于是y=x^y^y所以就是原来的x赋值给y了;

第三句的x^y相当于是x^x^y了,所以就是相当于把原来的y赋值给x了。

速度快是因为是用了计算机底层的逻辑运算符的方式进行计算,也算是让计算机高兴了,才计算快的。

posted @ 2019-03-12 00:17  吃喵的鱼喵喵喵  阅读(139)  评论(0编辑  收藏  举报