标签: javascript arrays integer
const x = new Int32Array(1); x[0] = 699044815921; console.log(x[0]); -1034853327
谁能解释为什么会有一个新的数字?
答案 0 :(得分:1)
Int32Array允许每个值32位,保留第32位(从右侧)以指定数字的符号。您尝试拟合的数字长度为(699044815921).toString(2).length == 40位,因此最左侧的8位被丢弃,第32位被解释为符号位,您将得到您得到的结果。
(699044815921).toString(2).length == 40