异或交换两个数的值

Posted on 2018-05-03 15:15  #大囚长#  阅读(156)  评论(0编辑  收藏  举报

异或交换两个数的值是资源开销最小的方法,不需要中介数,原理简单的来说就是异或的负负得正。

代码:

#include <stdio.h>

int main()
{
    int a = 11, b = 22;
    printf("a=%d b=%d\n", a, b);
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    printf("a=%d b=%d\n", a, b);
}

编译:

gcc test.c -o test

执行:

a=11 b=22
a=22 b=11