Я пытаюсь понять, почему, если я сдвигаю отрицательное целое число -1, я всегда получаю -1, например:
echo -1 >> 64; // -1
echo -1 >> 5; // -1
echo -1 >> 43; // -1
echo -1 >> 1; // -1
Независимо от того, какой второй операнд правого сдвига задан, -1 остается -1... Я понимаю, что когда вы выполняете правый сдвиг, вы на самом деле делаете это:
x >> y = x / 2^y
Но в случае, если x равно -1, если это так, я делаю:
-1 >> 3 = -1 / 2^3
Разве это значение не должно быть -1/8 = -0,125?
Спасибо за внимание.
Bitwise operators allow evaluation and manipulation of specific bits within an __integer__.
- person Mark Baker   schedule 08.11.2014