谁能向我解释的改变结果,为什么下面的代码:位运算符算术
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