【C学习笔记】【分享】day2-2 不允许创建临时变量,交换两个数的内容(附加题)
加法实现: #include <stdio.h> int main() { int a = 30; int b = 20; a = a + b; b = a - b; a = a - b; printf("a=%d,b=%d\n", a, b); return 0; } 乘法实现: #include <stdio.h> int main() { int a = 30; int b = 20; a = a * b; b = a / b; a = a / b; printf("a=%d,b=%d\n", a, b); return 0; }*/ 按位异或法实现: #include <stdio.h> int main() { int a = 30; int b = 20; a = a ^ b; b = a ^ b; a = a ^ b; printf("a=%d,b=%d\n", a, b); } 总结:加法与乘法中, 虽然节省了时间, 但是当参加运算的两个数比较大的, 有时候加1就会发生溢出; 而按位异或法则防止了溢出情况, 按位异或法: (mod 2)相同为1, 不同为0
原文链接:https://blog.csdn.net/SuLiJuan66/article/details/44728707