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.

¿Cuál es el significado de esta operación?

Teníamos este fragmento de código en un examen y no tenía idea de cuál era su significado y cómo funcionaba.
unsigned int a = 1, b = 2, c;
y luego c = a&b || a&&b;

La pregunta era: ¿Cuál es el valor de c? La respuesta fue 1.

¿Podría alguien explicar lo que está sucediendo en la inicialización de c?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El código inicializa tres variables: a con el valor de 1, b con el valor de 2, y c sin valor. La sentencia c = a&b || a&&b; asigna el valor de c al resultado de la expresión a&b || a&&b. La expresión se evalúa siguiendo el siguiente orden de operaciones:
    1. a&b se evalúa primero, que es el AND bit a bit de a y b. Como a es 1 y b es 2, el resultado es 0.
    2. a&&b se evalúa a continuación, que es el AND lógico de a y b. Como a es 1 y b es 2, el resultado es 1.
    3. Finalmente, se evalúa el resultado de la expresión a&b || a&&b, que es el OR lógico de los dos resultados anteriores. Como el resultado de a&b es 0 y el resultado de a&&b es 1, el resultado de la expresión es 1.
    Por lo tanto, el valor de c es 1.

Comments are closed.