js中的>>表示有符号位移,>>>表示无符号位移,当操作一个正数的时候,两者无差别:

    1. 10>>1 //结果5
    2. 10>>>1 //结果5

    因为10的二进制是1010,向右移动一个就是101,十进制中代表的是5。
    但是如果对于负数,那么就相差非常大了:

    1. -2>>1 //结果:-1
    2. -2>>>1 //结果:2147483647

    -2在计算机中是以补码存在(补码=反码+1),也就是11111111111111111111111111111110(一共32位,4个字节)。
    1.如果是>>1,表示有符号的位移,右边移去了一个0,左边补充一个1(正数补充0,负数补充1),变成11111111111111111111111111111111,十进制为-1。
    2.如果是>>>1,表示无符号的位移,右边一去了一个0,左边补充一个0(无视正数,负数,一直补充0),变成01111111111111111111111111111111,现在变成了一个正数(首位为0表示正数,1表示负数),就是2147483647。