Что такое 'x < < ~ y' в JavaScript?Что означает «x << ~ y» в JavaScript?
Я понимаю, что операция поразрядного SHIFT
делает это:
x << y AS x * 2y
И тильды ~
оператор делает:
~x AS -(x+1)
Итак, я предполагаю следующее:
5 << ~3 AS 5 * 2-4 or 5 * Math.pow(2, -4)
It должно привести к 0.3125
.
Но, когда я бегу 5 << ~3
, он приводит к 1342177280
.
Что такое пошаговое объяснение? Как и почему эта комбинация операций приводит к 1342177280
вместо 0.3125
?
(Этот вопрос похож на стек переливных Question What are bitwise operators? об операторе побитового SHIFT
.)
Как может операция смены бит дать дробный результат, например 0,3125? – edc65
@ edc65 Вот что я предполагаю, что ответ будет основан на базовом обучении 'XOR' и тильде' ~ '. Я абсолютно не понимаю, как это должно работать в любом случае. – choz
после '! -' и '<< ~' что дальше? Я должен опубликовать сообщение «Что делает оператор'^< dhein