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

Задача
Необходимо преобразовать число из одной системы счисления в другую.

Решение
Обратитесь к функции base_convert():

$hex = 'a1'; // шестнадцатеричное число (основание 16)
// преобразование из основания 16 в основание 10
$decimal = base_convert($hex, 16, 10); // переменная $decimal теперь равна 161

Обсуждение
Функция base_convert() изменяет строку в одной системе в соответствующую строку в другой системе. Она работает для всех систем с основаниями от 2 до 36 включительно. Для изображения чисел в системах с основанием больше 10 в качестве дополнительных символов используются буквы от a до z. Первый аргумент – это число, которое нужно преобразовать, за ним следует основание его системы, а в конце – основание ситемы, в которую требуется преобразовать число. Существует несколько специальных функций для прямого и обратного преобразования чисел в десятичную систему из других наиболее
востребованных систем с основаниями 2, 8 и 16. Это функции bindec() и decbin(), octdec() и decoct(),hexdec() и dechex():

// преобразование в десятичную систему
print bindec(11011); // 27
print octdec(33); // 27
print hexdec('1b'); // 27
// преобразование из десятичной системы
print decbin(27); // 11011
print decoct(27); // 33
print dechex(27); // 1b

Есть и другой вариант – можно обратиться к функции sprintf(), позволяющей преобразовывать десятичные числа в двоичные, восьмеричные и шестнадцатеричные и предоставляющей широкие возможности форматирования, например с нулями в начале числа и возможностью выбора между верхним и нижним регистром при отображении шестнадцатеричных чисел.

Пусть требуется вывести на печать значения цветов HTML:

printf('#%02X%02X%02X', 0, 102, 204); // #0066CC.



Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Взятие логарифмов
Вычисление степеней
Вычисление тригонометрических функций
Вычисления с не десятичными числами
Генерация случайных чисел в пределах диапазона

Вернуться в раздел: PHP / 2. Числа