Que représente 'x << ~y' en JavaScript ?
J'ai cru comprendre que la méthode bit à bit SHIFT
C'est ce que fait l'opération :
x << y AS x \* 2y
Et un tilde ~
L'opérateur le fait :
~x AS -(x+1)
Donc, je suppose ce qui suit :
5 << ~3 AS 5 \* 2\-4 or 5 \* Math.pow(2, -4)
Elle devrait aboutir à 0.3125
.
Mais, quand j'exécute 5 << ~3
il en résulte 1342177280
.
Qu'est-ce qu'une explication étape par étape ? Comment et pourquoi cette combinaison d'opérations aboutit-elle à 1342177280
au lieu de 0.3125
?
(Cette question est similaire à la question de Stack Overflow <em><a href="http://stackoverflow.com/questions/276706/what-are-bitwise-operators">Que sont les opérateurs binaires ? </a></em>à propos de la méthode du bit <code>SHIFT</code> opérateur.)