不用中间变量实现交换数据

来源:互联网 发布:中国大学生消费大数据 编辑:程序博客网 时间:2024/06/07 03:54
第一种方法:使用相加、相减来实现,比如:

           int x=1,y=2; 
           x=x+y; 
           y=x-y; 
           x=x-y;

第二种方法:使用异或运算,比如:

原理就是数字A异或B两次,就得到A。而B被A异或两次,就得到B。
    int x =1;
   
int y = 2;
    x
= x^y;//x被y异或一次
    y = x^y;//此时x存放的是x与y的异或,因此相当于被y又异或一次,x被y异或两次,得到x并赋给y
    x = x^y;//此时x存放的是x与y的异或,而y存放的就是x的值,因此再异或一次y就相当于异或x一次就得到x

0 0