一道计算题 请大家帮忙
无符号类型变量a和b 在执行一下三个指令后包含什么?
a^=b;b^=a;a^=b;
希望有详解 很感谢!
[解决办法]
将a和b的值交换。~为异或运算符。
[解决办法]
这几句话可以实现交换两个变量的值。符号 ^ 的意思是 “异或”。
下面给你两个函数,以及示例代码,自己看一下就可以了。
void swap01(int *a,int *b)
{
int tt;
tt = *a;
*a = *b;
*b = tt;
}
void swap02(int *a,int *b)
{
int tt;
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
int main()
{
int a = 10,b = 5;
swap01(&a,&b);
printf( "swap01(%d,%d)\t a = %d,b = %d\n ",a,b,a,b);
swap02(&a,&b);
printf( "swap02(%d,%d)\t a = %d,b = %d\n ",a,b,a,b);
system( "pause ");
return 0;
}