栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

转换两数的值C语言(无注释版本+详细版本)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

转换两数的值C语言(无注释版本+详细版本)

一、无注释 方法一:创建临时变量
#include
int main()
{
    int a = 3;
    int b = 5;
    int tmp = 0;
    
    tmp = a;
    a = b;
    b = tmp;
    
    printf("%d %dn", a, b);
    return 0;
}
方法二:两数相加减
#inclide
int main()
{
    int a = 3;
    int b = 5;
    
    a = a + b;
    b = a - b;
    a = a - b;
    
    printf("%d %dn", a, b);
    return 0;
}
方法三:按位异或
#include
int main()
{
    int a = 3;
    int b = 5;
    
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    
    printf("%d %dn", a, b);
    return 0;
}

二、详细讲解 方法一:创建临时变量
int main()
{
    int a = 3;
    int b = 5;
    int tmp = 0;//临时变量
    
    tmp = a;//将a的值先放在临时变量,tmp是3
    a = b;//将a的值换成b的值,a是5
    b = tmp;//将b的值改为临时变量的值,b是3
    
    //小提示:觉得绕的时候,记住一句话“等号右边的值决定等号左边的值”
    
    printf("%d %dn", a, b);
    return 0;
}

创建临时变量的使用率最高,也最通俗易懂。

方法二:两数相加减
#inclide
int main()
{
    int a = 3;
    int b = 5;
    
    a = a + b;//a = 3 + 5 = 8
    b = a - b;//b = 8 - 5 = 3
    a = a - b;//a = 8 - 3 = 5
    
    printf("%d %dn", a, b);
    return 0;
}

两数相加减存在溢出的问题,比如a+b大于int类型的存储空间,那么计算出来就不是我们想要的结果了。

方法三:按位异或
#include
int main()
{
    int a = 3;
    int b = 5;
    //按位异或^这个操作符的操作规则是:相同为0,相异为1。
    //3的原码是:00000000000000000000000000000011
    //5的原码是:00000000000000000000000000000101
    //3^5的结果:00000000000000000000000000000110
    
    a = a ^ b;//a = 110
    b = a ^ b;//b = 011 =3
    a = a ^ b;//a = 101 =5
    
    printf("%d %dn", a, b);
    return 0;
}

按位异或的代码的可读性不够好而且只适用于整形。(也就是不通俗易懂还不能广泛应用)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/311653.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号