引用ECMAScript规范5.2节:
因此,如果y为正,则x的模y的结果k为正,而与x的符号无关。
如果我的理解正确,那么ToInt32(-1)等于ToInt32(1)?
最佳答案
modulo
操作定义为数学模运算:
你的问题:
好吧,没有:
posInt = sign(-1) * floor(abs(-1)) = -1;
int32bit = posInt mod 4294967296 = -1 mod 4294967296 = 4294967295
(wolfram alpha link for mathematical result)
因为是
4294967295 >= 2147483648
,所以我们返回4294967295 - 4294967296
,即-1
。如果对
ToInt32(1)
运行相同的步骤,则会得到1
。所以他们没有相同的结果。