Repaso
English

Para un entero positivo n, ¿qué comprueba n & (n - 1) == 0?

Opciones

  1. n es un número par
  2. n es una potencia de dos (Opción correcta)
  3. n es un número primo
  4. n es un número impar

Respuesta

n es una potencia de dos

Por qué

En binario, una potencia de dos tiene exactamente un bit a 1: 8 = 1000. Restar 1 invierte ese bit y pone a 1 todos los bits inferiores: 7 = 0111.

El AND (&) de 1000 y 0111 es 0000. Cualquier número con dos o más bits a 1 conserva al menos uno, así que el resultado no es 0.

El mismo truco n & (n - 1) quita el bit a 1 más bajo, lo que ayuda a contar bits.

Recuerda

n & (n-1) == 0 → potencia de dos.

Términos clave

Practica esta pregunta en Repaso