js中int类型按照32位有符号二进制数运算。
- 第1位为符号位
- 剩下31位存储数据
一、最大整数为什么是 2 ^ 31 - 1 ?
原码:0111_1111_1111_1111_1111_1111_1111_1111
可知最大值为: 2 ^ 31 - 1;
(有 2 ^ 31 个数,去掉1个0,剩余是正数的数目,也即最大整数)
二、最小整数为什么是 - 2 ^ 31 ?
原码:1000_0000_0000_0000_0000_0000_0000_0000
(这里取 -0 作为最小的数。)
因此,对原码进行计算:
- 1000_0000_0000_0000_0000_0000_0000_0000
- 取反码:1111_1111_1111_1111_1111_1111_1111_1111
- 加1: 1_1000_0000_0000_0000_0000_0000_0000_0000
即最小值 -2^31