首页 > 其他 > 详细

两数交换

时间:2021-06-01 16:54:13      阅读:23      评论:0      收藏:0      [点我收藏+]
// 两数交换(只限数值)  
{
    int a,b,temp;
    /* 
        1.中间变量实现
        缺点:需要中间变量,浪费空间。 
    */
    temp = a;
    a = b;
    b = a;
     
    /* 
    技术分享图片

 

 


 


 


        2.保存和
            先用a保存a,b之和,b的值不变 
            然后和减去b就为原来a的值,赋给b,这个时候a为和,b为a的值,实现    了第一步交换
            再接着和减b即a减b就为原来b的值,赋值给a,实现最终交换 
        缺点:可能会越界。 
    */
    a = a+b;
    b = a-b;
    a = a-b; 
    
    /* 
        3.异或 
            异或规则:简单来说就是转换成二进制形式的两个数,每一位两个比较,相同为0,不同为1
                      1^1 = 0
                      0^0 = 0
                      1^0 = 1
                      0^1 = 1
            所以两个数进行异或计算,无非是两个数相对于另外一个数的相同位上的数不同的情况进行了改变
            由此,可以明白,和一个数进行异或得到的数再与其进行异或就可以得到原来的数
            用式子展示就是 
            a^b = c = b^a
            a^c = b = c^a
            c^b = a = b^c
    */
    a = a^b;        // a变成了c 
    b = a^b;        // a^b = c^b = a,b变成了a 
    a = a^b;        // a^b = c^a = b,a变成了b 
    return 0;
}

    

 

两数交换

原文:https://www.cnblogs.com/xie213/p/14837508.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!