Primer caso: (n >> 3 - n & 7)
En este caso, siguiendo la precedencia del operador, el primero en ser evaluado
. 3 - n = -9
Ahora, el siguiente operador es el operador de desplazamiento a la derecha. El operador de desplazamiento a la derecha con un conteo de desplazamiento negativo se enmascara con 0x1f [1].
. -9 & 0x1f = 23
Ahora, evaluamos el resto de acuerdo con la precedencia del operador.
y n >> 23 == 0
. 0 & 7 = 0
Segundo caso:
(la conversión de tipo int es innecesaria) (n >> 3) - (n & 7)
Las llaves explícitas asegurarán sus primeras evaluaciones.
n >> 3 = 1
n & 7 = 4
y 1 - 4 = -3
La valiosa lección para aprender aquí es usar siempre llaves, no confiar en las peculiaridades del lenguaje para cualquier evaluación.
[1] Capítulo 15. Expresiones
- En R x R f (x, y) se define como ax + por + c. Considerando un triángulo PQR, ¿podemos demostrar que si A se encuentra dentro de PQR, entonces max {f (P), f (Q), f (R)}> = f (A)}?
- ¿Es adecuada mi redefinición de [matemáticas] x ^ y [/ matemáticas]?
- ¿Cuál es un ejemplo de la situación de la vida real de una función lineal?
- ¿Qué es un logaritmo?
- Cómo visualizar la función exponencial compleja