Conversiones de números en JavaScript: Binario, Octal, Hexadecimal y Decimal

Publicado por parzibyte en

Introducción

Hoy veremos cómo podemos convertir números a una base distinta en JavaScript. Es decir, cómo hacer la operación (y lo inverso) para convertir un número de determinada a base a otra. Por ejemplo, convertir binario a octal, binario a decimal, decimal a hexadecimal y todas esas conversiones.

Para ello, no utilizaremos más que los métodos que le lenguaje provee; nada de librerías externas o algoritmos complicados.

Las funciones que usaremos

Usaremos dos funciones: parseInt y toString. Aquí un pequeño repaso:

La función parseInt recibe el primer argumento que será parseado o casteado a entero, y un segundo argumento (opcional) que indica la base desde la que estamos convirtiendo; por defecto es la base 10, la cual es decimal.

Y toString es una función que convierte un número (aunque también arreglos y otras cosas) a cadena. Como argumento (al menos cuando convertimos números) acepta la base a la que estamos convirtiendo, que por defecto es 10. Su documentación está aquí.

Estas dos funciones nos ayudarán a convertir distintas bases.

Convertir decimal a otras bases

Primero veremos cómo convertir la base que usamos normalmente. a otras bases. En resumen…

Convertiremos decimal a binario, decimal a octal y a hexadecimal. Para esto usamos la función toString.

Principalmente vemos que tenemos el número decimal, representado como un entero. Para convertirlo a otra base, ejecutamos: decimal.toString(BASE) en donde base es la base a la que vamos a convertir.

Por ejemplo, si es a binario, la base es 2. Si es a octal 8 y si es a hexadecimal es 16. Eso regresará una cadena representando el número. Pruébalo en este replit :

Ahora veamos la operación inversa

Convertir de otras bases a decimal

Ya hicimos la conversión de decimal a binario, octal y hexadecimal; pero no hemos visto cómo hacer la operación inversa. Vamos a ver cómo usar parseInt para convertir de binario, octal y hexadecimal a decimal.

Para ello, llamamos a parseInt con la cadena que representa al número en otra base, y como segundo argumento le pasamos la base en la que está. Es decir, si le pasamos un binario entonces la base sería 2. Eso devolverá un entero en base 10; o sea, base decimal.

La llamada es casi igual, siempre llamamos a parseInt con la cadena que representa al número, pero cambia la base. Prúebalo aquí:


Eso fue para convertir de decimal a otras bases, y de otras bases a decimal, pero, ¿cómo convertimos entre distintas bases? por ejemplo, convertir de octal a binario. Aquí traigo la solución 😉

Convertir números de distintas bases usando JavaScript

Para esto no se me ocurrió algo mejor que lo que seguramente se le ocurrió al lector en este punto del post: convertir primero a decimal y luego a la base deseada. El código habla mejor que yo:

En ese caso convertimos un binario a hexadecimal; y hay dos maneras. La primera es ser redundante, primero almacenar el resultado en otra variable y más tarde esa variable convertirla a la otra base (hexadecimal).

La segunda forma es en una línea, en donde el proceso es el mismo pero nos ahorramos una variable. Ambos resultados son exactamente los mismos, pero en el primer ejemplo se explica mucho mejor.

Por cierto, el 11 en hexadecimal es B, porque recuerda que la A es 10 y F 15. Pruébalo aquí:

Así podemos intercambiar de octal a hexadecimal, binario a octal y todo lo que se nos ocurra.

Con eso terminamos el post de conversiones numéricas en JavaScript. Espero traer más sobre matemáticas discretas muy pronto.


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB.Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron.Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scriptsLa plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C.Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

2 Comments

Haciendo un conversor de bases numéricas con JavaScript y Vue JS 2 - Parzibyte's blog · noviembre 6, 2018 a las 9:49 am

[…] reforzar y aplicar lo que vimos en cómo convertir entre binario, octal, decimal y hexadecimal en JavaScript decidí crear un convertidor (o conversor) de bases numéricas o números. Lo que hace es muy […]

Expresión regular para probar si un número es hexadecimal en JavaScript - Parzibyte's blog · noviembre 9, 2018 a las 3:00 pm

[…] Actualmente estoy trabajando en una pequeñísima app que te dice cómo convertir manualmente un número hexadecimal a decimal. […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: