Вещь, которую я заметил в Javascript -
a << -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