【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

posted @ 2021-12-04 14:31  2021yer  阅读(28)  评论(0编辑  收藏  举报