>>> var foo = [1,2]
>>> var bar = [3,4]
>>> foo^bar
0
>>> foo^3
3
>>> 1^3
2
什麼是運營商的目的:^?
編輯1:你能解釋爲什麼
>>> foo^bar
0
?
>>> var foo = [1,2]
>>> var bar = [3,4]
>>> foo^bar
0
>>> foo^3
3
>>> 1^3
2
什麼是運營商的目的:^?
編輯1:你能解釋爲什麼
>>> foo^bar
0
?
在1^3
的情況下,XOR運算做一些二進制的東西拿到2
1 = 00000001^
3 = 00000011
========
00000010 = 2
的JavaScript看到數組語法[x,y]
爲NaN
當你開始做的數學-Y的東西它。當你做就可以了位運算NaN
被解釋爲0
,所以foo
和bar
數學變得有意義考慮到這一點:
foo => NaN = 00000000^
bar => NaN = 00000000
========
00000000 = 0
foo => NaN = 00000000^
3 = 00000011
========
00000011 = 3
這似乎是成立的。 [1,2]^7 = 7
,[1,2,3]^9 = 9
等
XOR與foo&bar有什麼關係? – hungryMind
@hungryMind:'+ [1,2]'是'NaN','NaN^3'是'3',因爲'NaN'將在11.10節定義的ToInt32操作中轉換爲'0'的ECMAScript規範。 – pimvdb
這就是他期待我的想法。任何人都可以輕鬆地找到XOR的細節,但是陣列和數字之間的運算符是他關心的問題。謝謝澄清 – hungryMind
其所謂的位運算符之一,它對待它們的操作數爲32個比特(零和一),而不是作爲十進制,十六進制或八進制numbers.Bitwise XOR(一個^ B的序列)在每個位的位置返回一個,其中兩個操作數的對應位都不是1。
編輯:
a b a XOR b
0 0 0
0 1 1
1 0 1
1 1 0
也
9 (base 10) = 00000000000000000000000000001001 (base 2)
14 (base 10) = 00000000000000000000000000001110 (base 2)
--------------------------------
14^9 (base 10) = 00000000000000000000000000000111 (base 2) = 7 (base 10)
它是XOR運算 – AmGates
https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators#.5E_( Bitwise_XOR) –
這是按位異或運算符.. – Nikoloff