Hoy vamos a ver otro ejercicio de programación en Java. Se trata de convertir un número hexadecimal a uno decimal.
Vamos a ver dos maneras de pasar hexadecimal a decimal en Java; la primera utiliza un método que ya viene incluido en la API de Java y la segunda forma es un algoritmo manual.
Por si no lo tienes claro, en hexadecimal solo se usan los números del 0 al 9 y las letras de la A a la F. Las letras tienen un valor numérico, comenzando con que A
vale 10
y terminando en que F
vale 15
.
Un ejemplo es que el hexadecimal FF
vale 255 o que el hexadecimal AB
vale 171
; todo eso lo puedes comprobar en el conversor de bases online.
Es momento de comenzar con el código.
Como lo dije, existe un método ya programado que devuelve un número decimal y recibe una cadena indicando el número hexadecimal. Se trata de la función parseInt
y su uso es:
int decimal = Integer.parseInt(hexadecimal, 16);
Lo importante aquí es que como segundo argumento se indica la base, que en este caso es 16 pues en hexadecimal se usan 16 caracteres.
En los ejemplos veremos su uso de manera más clara.
Nosotros también podemos implementar la lógica para convertir el número.
Lo que tenemos que hacer es ir aumentando a una variable que tendrá el número decimal, definido por el resultado de elevar 16 a una base que es dada por un consecutivo según se avance en la cadena, y luego multiplicar eso por el valor del carácter.
Para obtener el valor dependiendo del carácter veremos otra función que devuelve un entero para cualquier carácter hexadecimal.
La función es la siguiente:
Lo único que estamos haciendo es devolver el valor numérico de cada carácter. Si no es ninguna letra, entonces intentamos convertir el carácter a entero.
Es decir, si es ‘1’ entonces devolvemos 1. Y si es una letra, devolvemos el valor de la misma.
Y aquí el código que realiza realmente la conversión:
Fíjate que estamos recorriendo la cadena de derecha a izquierda o de fin a inicio, esto es porque las potencias de 16 se deben ir contando de derecha a izquierda tomando en cuenta el carácter actual.
Ahora veamos el código completo de la conversión, con una pequeña demostración:
Si lo ejecutamos, ambos métodos coinciden, es decir, la conversión es correcta:
Si te parece interesante, te invito a explorar más sobre Java.
En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…
Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…
En un post previo te enseñé a enviar un mensaje en nombre de un Bot…
En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
Esta web usa cookies.