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 n
es una potencia de 2, entonces el resultado de la operación AND bit a bit de n
y debe ser 0.n - 1
Aviso:
Al realizar una operación AND bit a bit entre y , la parte de debe n
estar 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)
&
==