>> это арифметический сдвиг вправо, >>> это логический сдвиг вправо.
При арифметическом сдвиге знаковый бит расширяется, чтобы сохранить знаковость числа.
Например: -2, представленное в 8 битах, будет 11111110 (потому что старший бит имеет отрицательный вес). Смещение его вправо на один бит с помощью арифметического сдвига даст вам 11111111, или -1. Логический сдвиг вправо, однако, не заботится о том, что значение может представлять число со знаком; он просто перемещает все вправо и заполняет слева 0s. Смещение нашего значения -2 вправо на один бит с помощью логического сдвига дало бы 01111111.
Ответ 2
>>> беззнаковый сдвиг; он вставит 0. >> имеет знак и расширит знаковый бит.
Оператор сдвига вправо без знака ">>>" сдвигает ноль в крайнюю левую позицию, в то время как крайняя левая позиция после ">>" зависит от расширения знака.