Cambios de base
El objeto Number sobrescribe el método toString() heredado de Object para convertir un objeto en su representación tipo texto.
Además de este método existen otroas que además dan formato matemático a la representación del valor, son los métodos enfocados a las notaciones
La versión de toString([arg]) usada en objetos Number permite enviar un argumento al método para indicar la base de numeración en que debe representarse el número.
var numero = 2021;
var decimal;
var hexa;
var octal;
var binario;
decimal = numero.toString()
hexa = numero.toString(16);
octal= numero.toString(8);
binario = numero.toString(2);
console.log("Base 10: "+decimal);
console.log("Base 16: "+hexa);
console.log("Base 8: "+octal);
console.log("Base 2: "+binario);
Es una forma muy simple de cambiar de base de numeración. Este comportamiento es inverso al de parse_Int(cad, base) que permite interpretar una cadena de dígitos como un número en la base dada.
El método puede aplicarse a valores no enteros:
var numero = 240.5;
var decimal;
var hexa;
var octal;
var binario;
decimal = numero.toString()
hexa = numero.toString(16);
octal= numero.toString(8);
binario = numero.toString(2);
console.log("Base 10: "+decimal);
console.log("Base 16: "+hexa);
console.log("Base 8: "+octal);
console.log("Base 2: "+binario);
Sin entrar mucho en matemáticas te comento que la parte fraccionaria del número (lo que sigue al punto decimal) son fracciones de potencias de la base, al igual que en la parte entera los dígitos son potencias de la base.