读书人

一道计算题 请大家帮忙,该怎么处理

发布时间: 2012-02-28 13:06:35 作者: rapoo

一道计算题 请大家帮忙
无符号类型变量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;
}

读书人网 >C语言

热点推荐