为什么
9 >> 2 = 2
和
-9 >> 2 = -3
我的意思是,为什么不-2。
答案 0 :(得分:1)
答案 1 :(得分:1)
来自MDN上的bitwise operators page -
“所有位运算符的操作数都以大端顺序和二进制补码格式转换为带符号的32位整数。大端顺序意味着最高位(具有最大值的位位置)如果32位排列在一条水平线上,则是最左边的位。二进制补码格式意味着一个数字的负对应(例如5对-5)是所有数字的位被反转(按位数不是该数字) ,又名一个补码加一个。“
答案 2 :(得分:0)
-1 = 11111111
-2 = 11111110
-3 = 11111101
-4 = 11111100
..
-8 = 11111000
-9 = 11110111
从而
-9 >> 2 = -3