Int32Array中出现意外的负值

时间:2017-09-05 20:12:21

标签: javascript arrays integer

const x = new Int32Array(1);

x[0] = 699044815921;
console.log(x[0]);
-1034853327

谁能解释为什么会有一个新的数字?

1 个答案:

答案 0 :(得分:1)

Int32Array允许每个值32位,保留第32位(从右侧)以指定数字的符号。您尝试拟合的数字长度为(699044815921).toString(2).length == 40位,因此最左侧的8位被丢弃,第32位被解释为符号位,您将得到您得到的结果。