Сдвиг влево с отрицательным счетчиком сдвига в Javascript

Вещь, которую я заметил в Javascript -

<< -1

Returns 0 when a = even.
Returns -2147483648 when a = odd.

Аналогично, разные значения возвращаются, когда-1 меняется на какой-то другой-ve номер. Может кто-нибудь объяснить, какие битовые операции происходят под капотом? Или поведение не определено?

Спасибо

РЕДАКТИРОВАТЬ

Также не следует заполнять ноль сдвиг вправо, т.е.-2 >>> 1 вернуть7 ?

-2 = 1110. После правого сдвига с нулевым заполнением должно получиться 0111 = 7

ноa = -2; console.log(a >>> 1); возвращается2147483647

Ответы на вопрос(3)

Ваш ответ на вопрос