Hola a todos, hoy os voy a explicar como podemos saber si un numero es potencia de 2 en Java.
Es posible que necesitemos saber en algún momento para nuestras aplicaciones si un número es potencia de 2.
Tenemos varias formas de hacerlo:
Indicar si es potencia de dos en Java: forma 1
La forma sin complicaciones pero algo menos optima, seria ir dividiendo entre 2 e ir comprobando si el numero es divisible entre 2:
Indicar si es potencia de dos en Java: forma 2
La segunda forma, es usando logaritmos, si dividimos el logaritmo del numero entre el logaritmo de 2, si es potencia de 2, debe devolver un numero entero sin decimales.
Es util pero cuando son numeros altos puede volverse impreciso.
Indicar si es potencia de dos: forma 3
La ultima forma es usando operadores de bit para indicar si es potencia de 2.
Cuando realizamos la operación numero & (numero – 1), lo que estamos haciendo es realizar una operación AND bit a bit entre numero y el número que resulta de restarle 1 a numero.
Por lo tanto, cuando realizamos la operación AND bit a bit entre numero y (numero – 1), el resultado será 0 si y solo si numero es una potencia de dos.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta