¿Qué representa 'x << ~ y' en JavaScript?

¿Qué representa 'x << ~ y' en JavaScript?

Entiendo que el bit a bitSHIFT la operación hace esto :,

x << y AS x * 2y

Y una tilde~ el operador hace:

~x AS -(x+1)

Entonces, supongo lo siguiente:

5 << ~3 AS 5 * 2-4 or 5 * Math.pow(2, -4)

Debería resultar en0.3125.

Pero cuando corro5 << ~3 en resultado de1342177280.

¿Qué es una explicación paso a paso? Cómo y por qué esta combinación de operaciones resulta en1342177280 en lugar de0.3125?

(Esta pregunta es similar a la pregunta de desbordamiento de pila¿Qué son los operadores bit a bit? sobre el bit a bitSHIFT operador.)

Respuestas a la pregunta(5)

Su respuesta a la pregunta