Artículos
Java

Potencias del dos con desplazamiento de bits

27/Ene/2009

Hace unos días explicabamos el ejemplo de cómo obtener las potencias del dos con Java. Para ello nos apoyabamos sobre la clase Math y el método .pow.

Si bien, para el caso del número 2, y como nos comentaba Le Funes hay una forma de mostrar las potencias del dos con desplazamiento de bits. Y es que todo número tiene su representación en binario. Entendiendo que en el lenguaje binario se representa todo con ceros y unos.

Así la representación en binario del 1 es 1, la del 3 es 11, la de 8 es 1000, la del 9 es 1001,… Para calcular el número decimal de un número binario es tan sencillo como obtener la posición del número, empezando por la derecha como posición cero, elevar su valor a la potencia del 2 y sumar todos los números.

En el caso del 9 sería, que sería 1001, el calculo lo haríamos como:

  2^3 = 8
+ 2^0 = 1
---------
        9

Lo que vamos a hacer para nuestro ejemplo es apoyarnos en esta carácterística e ir desplazando un 1 hacía la izquierda. Algo como lo siguiente:

000001 = 1
000010 = 2
000100 = 4
001000 = 8
010000 = 16
100000 = 32

Para desplazar el bit a la izquierda lo hacemos con el operador de desplazamiento <<. La operación sería de la siguiente manera:

1 << 1 // Para desplazar una posición
1 << 2 // Para desplazarlo dos posiciones
1 << 3 // Para desplazarlo tres posiciones
...

Asi que solo nos queda meterlo en un bucle para sacar todas las potencias del dos.

int iNumeroPotencias = 10;

for (int x=0;x<=iNumeroPotencias;x++)
  System.out.println("2 elevado a " + x + " igual a " + (1 << x));

Gracias a Le Funes por su colaboración...

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
2 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios