查看單個文章
舊 2017-08-07, 09:47 PM   #8 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時
註冊日期: 2002-12-07
文章: 13249
精華: 0
現金: 26241 金幣
資產: 3024051 金幣
預設

引用:
作者: 魔術王子 查看文章
一般兩個數值要互相交換,大部分會先再用一個變數,來做媒介
而現在這個方法是可以直接互換,而不需要第三個變數
也可以用 xor 互斥或 邏輯運算子
不論是 數值 還是 字串 都可以(而且可以長短不一)甚至是 結構體 也行

Dim a = "234", b = "9876"
a = a Xor b
b = a Xor b
a = a Xor b

因為這(xor) 算是CPU裡的最基本指令集所以理論速度會比較快
會使用CPU暫存器所以不用第三個記憶體空間

以上都是理論,每個語言編譯器會動甚麼手腳就不知道了 (要測速也可以啦,懶得做而以)

如果是像C這種比較嚴謹的變數宣告就要注意 溢位問題
mini 目前離線  
送花文章: 1999, 收花文章: 7957 篇, 收花: 26749 次
回覆時引用此帖
向 mini 送花的會員:
魔術王子 (2017-08-07)
感謝您發表一篇好文章