异或交换两个变量值

异或交换两个变量值

swap函数完成变量a,b的交换。

void swap(){
    a=a^b;
    b=b^a;
    a=b^a;
}

分析:首先对于异或二进制两数运算结果为:

0^0=0;
0^1=1;
1^0=1;
1^1=0;

异或规律:一个数异或两次另外一个数等于原来那个数,即a ^ b ^ b=a(位置可交换);
由此不难得出:

a=a^b;//第一个a相当于一个中间变量
b=b^a=b^a^b=a;
a=b^a=a^a^b=b;//这里b=a,a=a^b

原文链接: https://www.cnblogs.com/wryy/p/13205517.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    异或交换两个变量值

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/359913

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午1:00
下一篇 2023年3月2日 下午1:01

相关推荐