Преобразование чисел из одной системы счисления в другую в 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'
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.