誰能向我解釋的改變結果,爲什麼下面的代碼:位運算符算術
var a = 0xFFFFFFFF;
a &= 0xFFFFFFFF;
a += 1;
alert("a = " + a);
var b = 0xFFFFFFFF;
b += 1;
alert("b = " + b);
回報爲不同的a和b的值?
由於0xFFFFFFFF & 0xFFFFFFFF應該等於0xFFFFFFFF,這兩段代碼應該返回0x100000000。取而代之的是得到0的值,並且b得到0x100000000的值。
關於你的最後一個問題 - 在'b + = 1'之前加上'b&= 0xFFFFFFFF'! – 2011-03-17 13:20:45
順便說一句,你得到'a'和'b'的結果是什麼? – 2011-03-17 13:21:38
我不應該因爲0xFFFFFFFF&0xFFFFFFFF = 0xFFFFFFFF。他們應該是兩次完全相同的價值。 – Sparafusile 2011-03-17 13:22:01