异或 交换数据:a = a^b; b = a^b; a = a^b;
#include <stdio.h>
/**
*******************************************************************************
* @brief 主 函数
* @param [in] None
* @return None
* @note
*******************************************************************************
*/
int main(void)
{
unsigned char a, b;
unsigned char tmp;
a = 2;
b = 6;
printf("中间量交换法 交换前 a = %d; b = %d;\n", a, b);
tmp = b;
b = a;
a = tmp;
printf("中间量交换法 交换后 a = %d; b = %d;\n", a, b);
printf("\n");
printf(" 异或 交换法 交换前 a = %d; b = %d;\n", a, b);
a ^= b;
b ^= a;
a ^= b;
printf(" 异或 交换法 交换后 a = %d; b = %d;\n", a, b);
}
运行结果: