日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实现两个数的交换(异或,加减)

發布時間:2023/12/2 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实现两个数的交换(异或,加减) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、 通常我們通過設置臨時變量來實現兩個數的交換,如下: void swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;} 2、還可以通過異或來實現兩個不同整數的交換,如下: void swap(int &a,int &b){temp=a^b; //設a為臨時變量,存儲異或值b=temp^b; //相當于b=aa=temp^a; //相當于a=b }a=a^b^a;//也可以不設置臨時變量,因為異或值沒有發生變化 b=a^b^b; ? ? ?原理推導:
? ?(1)異或的意義:相同的兩個數異或得0,不同的兩個數異或得1;

? ?(2)異或結論:將兩個數異或的結果與其中一個數再異或,可以得到另一個數;

? ?(3)例子:用異或交換兩個數

? ? ? ? ? ? ?12(001100)^ 34(100010)=101110(結果)
? ? ? ? ? ? ?101110(結果) ^ 001100(12)=100010(34)

? ? ? ? ? ? ?101100(結果) ^ 100010(34)=001100(12)

3、還可以通過加減實現兩個數的交換,前提是兩個數的和不溢出,如下:

a = a + b; b = a - b; a = a - b;


總結

以上是生活随笔為你收集整理的实现两个数的交换(异或,加减)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。