三種交換變數的方法
交換變數
以下約定要交換的兩個變數為 x
, y
。
第三者交換法
定義第三個變數,用於交換兩個變數的值。
var tmp = x;
x = y;
y = x;
加法交換法
這種方法通過加法的運算來交換變數,但是要注意這種方法有侷限性
- 不能交換非數字型別的變數
- 對於浮點型別的變數可能會出現問題
- 加法過程中可能會出現超出上限的問題
x = x + y;
y = x - y;
x = x - y;
異或交換法
通過異或運算的性質得到的一種交換方法,這種交換方法有一定的侷限性
- 只能用於交換可以進行異或運算的資料型別
- 如果
x
,y
指向同一個記憶體地址,則異或交換法失效
x ⊕ y ⊕ y = x x\oplus y\oplus y=x x⊕y⊕y=x
x = x ^ y;
y = x ^ y;
x = x ^ y;
總結
綜上所述,第三者交換法應用場景最廣泛,異或次之,再者是加法交換法,應當根據不同場景分別使用。
相關文章
- 數值變數交換常用方法變數
- 不用第三個變數,交換變數的值變數
- 交換兩個資料的三種方法
- C語言交換兩個變數的值的5種基本方法C語言變數
- c語言 - 交換兩個變數(不建立臨時變數)兩種方法C語言變數
- 面試題-JavaScript交換兩個變數的方法面試題JavaScript變數
- 交換兩個變數變數
- java基礎變數的交換Java變數
- 交換兩個整型變數變數
- Swift交換兩個變數的值Swift變數
- 不使用臨時變數交換兩個變數的值變數
- Python常用的四種數值交換方式!Python
- 淺談Python變數賦值的三種方法!Python變數賦值
- C++ 一種交換兩個數的思路C++
- 如何不使用臨時變數,交換兩個變數的值。變數
- 改變IP地址的三種方法
- 二層交換機和三層交換機的區別
- 異或運算的巧用 → 不用額外的變數,如何交換兩個變數的值?變數
- 透過交換指標變數的值改變大小數字的位置-學習筆記指標變數筆記
- 二層交換機鏈路聚合、三層交換機鏈路聚合和三層交換機的單臂路由專案路由
- java交換元素swap方法Java
- 數倉的兩種輕量級資料交換格式:json與jsonbJSON
- VLAN與三層交換機
- 變更性別--使用if 交換值
- 4.RabbitMQ 4種交換模式MQ模式
- 【轉】交換機開發(三)—— 深入分析三層網路交換機的原理和設計
- 異或交換兩個數的值
- JavaScript實現兩個數的交換JavaScript
- 前端基礎(二):變數宣告的6種方法前端變數
- JavaScript判斷變數型別的四種方法JavaScript變數型別
- 理解兩種變數模型和三種傳參模式變數模型模式
- hbase統計表的行數的三種方法
- 接入交換機、匯聚交換機、核心交換機的區別
- 簡單介紹三層交換
- 分享三種jpg轉換成pdf格式的方法,每一種都好用
- JSON資料交換格式有幾種?JSON
- 各種Fourier變換
- 工業交換機在數字化變電站中的應用優勢