Преобразование из одной системы счисления в другую при помощи языка программирования-PHP
Решение
Обратитесь к функции 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
Комментарии:
Комментариев нет
|
|
|