js中没有整型 ,好像只有number。

解决方案 »

  1.   

    哦哦,但是 8589934592 & 64491553279 为什么等于0呢,也没有超过范围吧
      

  2.   

    8589934592 & 64491553279 转成二进制是如下
    111100000011111111110000000111111111
    &
    001000000000000000000000000000000000
    得到的当然是
    000000000000000000000000000000000000即为0
      

  3.   

    js 在进行二进制运算时,使用 32 位二进制整数,由于 js 的整数都是有符号数,最高位0表示正数,1表示负数,因此,js 二进制运算中使用的整数表达范围是 -Math.pow(2,31) ~ Math.pow(2,31)-1 // -2147483648 ~ 2147483647 
    对于32 位二进制正整数来说,其模为 Math.pow(2,32) = 4294967296 
    32 位正整数最大表达范围是 4294967296 - 1 ,达到 4294967296 这个值就要进位到33位,33 位是溢出位被丢弃,只得到32 个0
    你可以去看看这个说的很明白:javascript 二进制运算技巧解析