一般来说,位移 ( >> , <<
) 允许我们除/乘^2
例子 :
9 (base 10): 00000000000000000000000000001001 (base 2)
--------------------------------
9 >> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10)
对于负数:
同样,-9 >> 2
产生-3
,因为符号被保留:
-9 (base 10): 11111111111111111111111111110111 (base 2)
--------------------------------
-9 >> 2 (base 10): 11111111111111111111111111111101 (base 2) = -3 (base 10)
但是看看>>>
哪个对于正数的行为相同,但对于负数的行为不同:
零位从左边移入
我找不到任何 0
从左移(使整数为正)从左移的原因/用法:
-9 (base 10): 11111111111111111111111111110111 (base 2)
--------------------------------
-9 >>> 2 (base 10): 00111111111111111111111111111101 (base 2) = 1073741821 (base 10)
问题 :
我应该在什么情况下使用>>>
?我不明白为什么我要从左边填充零并弄乱我的负数。