Представленный ниже скрипт позволяет преобразовать число из одной системы счисления в другую:

Преобразование чисел из одной системы счисления в другую в JavaScript

Представленный ниже скрипт позволяет преобразовать число из одной системы счисления в другую:


// немедленно вызываемя функция
// скрываем код из глобальной области видимости
(function(){

    var ConvertNumber = function (num) {
        return {
            from : function (baseFrom) {
                return {
                    to : function (baseTo) {
                        return parseInt(num, baseFrom).toString(baseTo);
                    }
                };
            }
        };
    };
        
    // двоичное число в десятичное
    ConvertNumber.bin2dec = function (num) {
        return ConvertNumber(num).from(2).to(10);
    };
    
    // двоичное число в шестнадцатеричное
    ConvertNumber.bin2hex = function (num) {
        return ConvertNumber(num).from(2).to(16);
    };
    
    // десятичное в двоичное
    ConvertNumber.dec2bin = function (num) {
        return ConvertNumber(num).from(10).to(2);
    };
    
    // десятичное в шестнадцатеричное
    ConvertNumber.dec2hex = function (num) {
        return ConvertNumber(num).from(10).to(16);
    };
    
    // шестнадцатеричное в бинарное
    ConvertNumber.hex2bin = function (num) {
        return ConvertNumber(num).from(16).to(2);
    };
    
    // шестнадцатеричное в десятичное
    ConvertNumber.hex2dec = function (num) {
        return ConvertNumber(num).from(16).to(10);
    };
    
    // добавляем объект в глобальную область
    this.ConvertNumber = ConvertNumber;
    
})(this);


// Используем так:

ConvertNumber.bin2dec(100);    // '4'
ConvertNumber.dec2hex(42);     // '2a'
ConvertNumber.hex2bin('64645d'); // '6579293'
ConvertNumber.dec2bin(4);      // '100'

А вот еще и вторая версия, которая использует JavaScript каррирование, о которм я уже рассказывал в этой статье.

// немедленно вызываемя функция
// скрываем код из глобальной области видимости
(function(){

    var ConvertNumber = number => from => to => parseInt(number, from).toString(to);
        
    // двоичное число в десятичное
    ConvertNumber.bin2dec = number => ConvertNumber(number)(2)(10);
    
    
    // двоичное число в шестнадцатеричное
    ConvertNumber.bin2hex = number => ConvertNumber(number)(2)(16);

    
    // десятичное в двоичное
    ConvertNumber.dec2bin = number => ConvertNumber(number)(10)(2);
    
    
    // десятичное в шестнадцатеричное
    ConvertNumber.dec2hex = number => ConvertNumber(number)(10)(16);
    
    
    // шестнадцатеричное в бинарное
    ConvertNumber.hex2bin = number => ConvertNumber(number)(16)(2);
    
    
    // шестнадцатеричное в десятичное
    ConvertNumber.hex2dec = number => ConvertNumber(number)(16)(10);
    
    
    // добавляем объект в глобальную область
    this.ConvertNumber2 = ConvertNumber;
    
})(this);




ConvertNumber2.bin2dec(100);    // '4'
ConvertNumber2.dec2hex(42);     // '2a'
ConvertNumber2.hex2bin('64645d'); // '6579293'
ConvertNumber2.dec2bin(4);      // '100'