¿Qué significa esto: >> significa en JavaScript?Doble más que el símbolo en JavaScript
Visto en este contexto:
document.onkeydown = document.onkeyup = function(e,v,y,k) {
(i=e.keyCode-37)>>2 || (keys[i] = e.type[5]&&1||(0))
}
¿Qué significa esto: >> significa en JavaScript?Doble más que el símbolo en JavaScript
Visto en este contexto:
document.onkeydown = document.onkeyup = function(e,v,y,k) {
(i=e.keyCode-37)>>2 || (keys[i] = e.type[5]&&1||(0))
}
desplazamiento a la izquierda un < < b turnos en binario representación b (< 32) bits a la izquierda, cambiando en ceros de el a la derecha.
propagar Sign-desplazamiento a la derecha una >> b turnos en representación binaria b (< 32) bits a la derecha, descartando bits desplazados fuera.
>>
es el bitwise right shift operator.
Por ejemplo: 4 >> 1
es igual a 4 2
porque es 100
en notación binaria, que está desplazado un poco hacia la derecha, que nos da 10
= 2
¿cuál es el significado obteniendo la conversión de notación binaria, en este contexto, y luego usando el operador de desplazamiento a la derecha en modo bit? – bcm
No veo una razón para ello. Podrían haberlo escrito como (i = e.keyCode-37)/4 en su lugar, dado que el desplazamiento a la derecha de dos bits es esencialmente lo mismo que dividir por cuatro. –
Es el operador de desplazamiento en modo bit (ver here).
Ahora, en cuanto a exactamente lo que está haciendo aquí, no estoy seguro ... Estoy seguro de que algunos de nuestros bretheren de cerebro más grande que realmente terminaron la universidad podrían ayudarnos con eso. ; ^)
(i=e.keyCode-37)>>2
Este código está descartando los dos bits menos significativos de i (similares a dividir por 4), y comparando el resultado a cero. Esto será falso cuando la tecla presionada sea 37-40 (teclas de flecha), y verdadera de lo contrario.
explicación para el público cualquiera? – bcm
Dispararía a quien haya escrito esa línea de código. – TrungDQ