吉吉于

交换两数的另类实现

偶然发现的有趣的两位数交换代码,来玩玩~~

1。

#include <stdio.h>
#include <stdlib.h>
int main(void){
    int a = 1;
    int b = 2;
    //a=     00000001
    //b=     00000010
    //(a^=b)=00000011
    //(b^=a)=00000001
    //(a^=b)=00000010
    a ^= b;
    b ^= a;
    a ^= b;
    printf("a=%d b=%d\n", a,b);
    system("PAUSE");
    return 0;
}

2。

#include <stdio.h>
void main()
{
    int a = 1;
    int b = 2;
    b=a+b;
    a=b-a;
    b=b-a;
    printf("a=%d,b=%d\n",a,b);
    getchar();
}

 

转载请注明:于哲的博客 » 交换两数的另类实现