es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“&&” 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?

Tags:  , ,

Answer

  1. Avatar for 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:

    let tx = ((texWidth * (floorX - cellX)) | 0) & (texWidth - 1);
    color = (color >> 1) & 8355711; // hacerlo un poco más oscuro
    

    En JavaScript, el operador | realiza la operación OR bit a bit, y cuando se combina con el 0, 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++.

Comments are closed.