题目描述
设计重载函数,使用按位异或(^)运算,实现快速交换两个整型变量和浮点型变量的值。
输入
四个数(空格隔开,前两个整型,后两个double)
输出
四个数原来的顺序(a b c d)
前两个,后两个swap后的顺序(b a d c)
KeyWord(s) that Must be Used
^
样例输入
1 2 3.1 4.5
样例输出
1 2 3.1 4.5
2 1 4.5 3.1
void swap(double&a,double&b)
{
int*ap, *bp;
ap = (int*)(&a);
bp = (int*)(&b);
cout << "a=" << a << "\tb=" << b << endl;
*ap = (*ap) ^ (*bp); *bp = (*ap) ^ (*bp); *ap = (*ap) ^ (*bp);
ap++; bp++;
*ap = (*ap) ^ (*bp); *bp = (*ap) ^ (*bp); *ap = (*ap) ^ (*bp);
cout << "a=" << a << "\tb=" << b << endl;
}课本上有这道例题
void swap(int& a, int &b){
a = a ^ b;
b = a ^ b;
a = a ^ b;
}