C语言利用异或进行两个值的交换

异或有两个很重要的性质:

1、 A^A = 0;

2、A^0 = A;

利用这两个性质,我们就能够利用异或进行两个值的交换。

代码如下:

#include <stdio.h>

int main()
{
    int a = -11;
    int b = -1;
    
    a = a^b;
    b = a^b;
    a = a^b;

    /*或者简写为
     * 
    a ^= b;
    b ^= a;
    a ^= b
    *
    **/
    printf("交换后a = %d,b = %d\n",a,b);
    return 0;
}

 

posted @ 2017-08-25 13:33  青儿哥哥  阅读(1174)  评论(0编辑  收藏  举报