兩值交換的優化,適用大部分語言(原創)

利用javaScript語言舉個例子:java

var a = '111',b = '222'
a = a ^ b
b = a ^ b
a = a ^ b
console.log(a)    // '222'
console.log(b)    // '111'

'^'符號是js中的異或運算,大部分語言都有,不過表示的符號不必定同樣,直接替換例子中便可;優化

因爲異或運算屬於更底層一些的操做,因此比起咱們平時聲明多一個變量來交換兩值的方法快很多;spa

如下是聲明變量交換兩值的方法:code

var a = '111',b = '222',c
c = a
a = b
b = c
console.log(a)   // '222'
console.log(b)   //  '111'

附:位運算中,除了異或運算有優化代碼的效果以外,還有其餘的一些,好比:shl運算。blog

a shl 1 等同於 a * 2,也由於是底層的運算,因此前者會比後者快,全部跟2的n次方相乘的運算均可以使用shl來代替ip

相關文章
相關標籤/搜索