Linksverschiebung mit einer negativen Verschiebungszahl in Javascript

Was mir in Javascript aufgefallen ist -

a << -1

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

In ähnlicher Weise werden unterschiedliche Werte zurückgegeben, wenn-1 wird zu einem anderen geändert-ve Nummer. Kann jemand erklären, welche Bit-Operationen unter der Haube stattfinden? Oder ist das Verhalten undefiniert?

Vielen Dank

BEARBEITEN

Sollte auch nicht die Verschiebung nach rechts auf Null setzen, d.h.-2 >>> 1 Rückkehr7 ?

-2 = 1110. Nach der Verschiebung mit Nullfüllung nach rechts sollte 0111 = 7 sein

abera = -2; console.log(a >>> 1); kehrt zurück2147483647

Antworten auf die Frage(3)

Ihre Antwort auf die Frage