js異或運(yùn)算符^小技巧分享
js異或運(yùn)算符^小技巧
這個運(yùn)算符主要是在位運(yùn)算的時候使用,但是在普通的數(shù)也能使用,且有一個轉(zhuǎn)換過程,即將二進(jìn)制的數(shù)轉(zhuǎn)換為十進(jìn)制
var a = 1 ^ 2; //3 //1 -> 01 //2 -> 10 //1 ^ 2 -> 11 -> 3
如上所示,在十進(jìn)制進(jìn)行異或運(yùn)算符操作時也是OK的,結(jié)果顯示也是十進(jìn)制的結(jié)果,示例中的轉(zhuǎn)換過程只是我假象的轉(zhuǎn)換過程,只是便于理解,假設(shè)由十進(jìn)制到二進(jìn)制進(jìn)行異或運(yùn)算,再將結(jié)果轉(zhuǎn)換為十進(jìn)制,實際上的運(yùn)算并不一定是如此
利用異或運(yùn)算可以找出數(shù)組中奇?zhèn)€數(shù)的項
var a = [2,3,2,4,4]; for(let i = 0; i < a.length; i++) { ? ? a[0] = a[0] ^ a[i]; } //a[0]為3,即單獨(dú)存在的一項
這里涉及到離散數(shù)學(xué)的異或運(yùn)算性質(zhì)了
- 1.交換律:a ^ b ^ c <=> a ^ c ^ b
- 2.任何數(shù)于0異或為任何數(shù) 0 ^ n => n
- 3.相同的數(shù)異或為0: n ^ n => 0
因此上面的例子2 ^ 3 ^ 2 ^ 4 ^ 4等價于 2 ^ 2 ^ 4 ^ 4 ^ 3 => 0 ^ 0 ^3 => 3
js中的位運(yùn)算符(按位與、按位或、按位異或)使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script type="text/javascript"> var a=1; var b=0; //按位與&:兩個操作數(shù)都是1,結(jié)果才是1 alert(a&b) //結(jié)果是0 //按位或:兩個操作數(shù)只要有一個是1,結(jié)果就是1 alert(a|b) //結(jié)果是1 //按位異或:兩個數(shù)字一樣,結(jié)果為0;兩個數(shù)字不一樣,結(jié)果就是1。 alert(a^b) //結(jié)果是1 //簡單的方法:數(shù)字求負(fù),在減1 alert(~a)//結(jié)果是-2 </script> <title>位運(yùn)算符</title> </head> <body> </body> </html>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
onsubmit阻止form表單提交與onclick的相關(guān)操作
return false會阻止表單提交,基本上關(guān)于onsubmit=return false有以下幾點(diǎn)要注意的地方,學(xué)習(xí)后臺編程的朋友一定要知道。2010-09-09