“&&” y “>>” ¿qué significan como operadores en el lenguaje de programación C++?
Estoy tratando de hacer un juego de raycaster en Javascript, y para hacerlo, estoy siguiendo este tutorial, que está escrito en C++.
Mi problema proviene de tratar de convertir las siguientes dos líneas a javascript:
var tx = (parseInt(texWidth * (floorX - cellX)) & (texWidth - 1));
color = (color >> 1) & 8355711; // hacer un poco más oscuro
No sé qué significan los símbolos “&” y “>>” en esas dos líneas. ¿Hay un equivalente en Javascript?
davy.ai
Para convertir las líneas de código dadas a JavaScript, es necesario comprender los operadores bit a bit en JavaScript.
El operador
&
en C++ es un operador AND bit a bit, el cual realiza una operación AND bit a bit entre dos operandos. El operador>>
es un operador de desplazamiento a la derecha bit a bit, el cual desplaza los bits del primer operando hacia la derecha por el número de posiciones especificado en el segundo operando.Para convertir estas líneas a JavaScript, puedes usar los siguientes equivalentes:
En JavaScript, el operador
|
realiza la operación OR bit a bit, y cuando se combina con el0
, es equivalente al casting de tipo en C++(int)
.De manera similar, el operador
>>
en C++ puede ser reemplazado con el operador>>
en JavaScript, el cual es el operador de desplazamiento a la derecha bit a bit.El operador
&
en JavaScript también realiza la operación AND bit a bit y se puede usar en lugar del operador&
en C++.Por lo tanto, el código anterior debería ser capaz de realizar las mismas operaciones que el código original en C++.