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

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

&nbsp;-1

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

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

Спасибо

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

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

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

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