Utilice operaciones bit a bit para resolver potencias de 2

1 ¿Qué son las operaciones de bits?

La operación AND bit a bit es un operador binario, &representado por el símbolo. Compara los bits correspondientes de los dos operandos bit a bit, solo cuando los dos bits correspondientes son 1 al mismo tiempo, el bit correspondiente del resultado es 1, de lo contrario es 0.

Las reglas para las operaciones AND bit a bit son las siguientes:

  • Si ambos bits correspondientes son 1, el bit resultante es 1.
  • Si algún bit correspondiente es 0, el bit de resultado es 0.

Por ejemplo, supongamos que hay dos números binarios: 10101011 y 11110000. El resultado de realizar una operación AND bit a bit es el siguiente:

10101011

&

11110000

-----------

10100000

Por lo tanto, la operación AND bit a bit de 10101011 y 11110000 da como resultado 10100000.

2 Utilice operaciones de bits para resolver potencias de 2 de forma inteligente

public boolean isPowerOfTwo(int n) {
    if (n > 0 && (n & (n - 1)) == 0) {
        return true;
    } else {
        return false;
    }
}

ilustrar:

        Este método aprovecha las características de una potencia de 2: después de restar 1 a una potencia de 2, el bit más alto en su representación binaria pasa a ser 0 y los demás bits pasan a ser 1. Por lo tanto, si un número nes una potencia de 2, entonces el resultado de la operación AND bit a bit de ny debe ser 0.n - 1

Aviso:

        Al realizar una operación AND bit a bit entre y , la parte de debe nestar entre paréntesis. Esto se debe a que el operador AND bit a bit tiene menor prioridad que el operador de igualdad . Agregar paréntesis garantiza que la operación AND bit a bit se realice antes de la operación de comparación de igualdad.(n - 1)(n - 1)&==

Supongo que te gusta

Origin blog.csdn.net/m0_62567916/article/details/132091212
Recomendado
Clasificación