js異或運算符^小技巧分享
js異或運算符^小技巧
這個運算符主要是在位運算的時候使用,但是在普通的數(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)行異或運算符操作時也是OK的,結(jié)果顯示也是十進(jìn)制的結(jié)果,示例中的轉(zhuǎn)換過程只是我假象的轉(zhuǎn)換過程,只是便于理解,假設(shè)由十進(jìn)制到二進(jìn)制進(jìn)行異或運算,再將結(jié)果轉(zhuǎn)換為十進(jì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,即單獨存在的一項這里涉及到離散數(shù)學(xué)的異或運算性質(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中的位運算符(按位與、按位或、按位異或)使用
<!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>位運算符</title>
</head>
<body>
</body>
</html>總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
onsubmit阻止form表單提交與onclick的相關(guān)操作
return false會阻止表單提交,基本上關(guān)于onsubmit=return false有以下幾點要注意的地方,學(xué)習(xí)后臺編程的朋友一定要知道。2010-09-09

