Dechex: примеры (PHP)
dechex(int $num): stringОсновные сведения о функции dechex
Функция dechex в PHP предназначена для преобразования десятичного целого числа в его шестнадцатеричное строковое представление. Эта функция часто используется в задачах, связанных с низкоуровневым программированием, обработкой цветов (например, в веб-разработке для HEX-кодов), генерацией идентификаторов или при работе с бинарными данными.
Функция принимает один обязательный аргумент:
- $num (int) - Десятичное целое число, которое необходимо преобразовать. Если передано отрицательное число, оно будет интерпретировано как беззнаковое целое.
Возвращаемое значение - строка, содержащая шестнадцатеричное представление переданного числа. Буквы в результате возвращаются в нижнем регистре.
Короткие примеры использования
<?
echo dechex(255);
?>ff
<?
echo dechex(-1);
?>ffffffffffffffff
<?
echo dechex(123456789);
?>75bcd15
Похожие функции в PHP
Выполняет обратное преобразование - из шестнадцатеричной строки в десятичное число. Используется, когда нужно получить числовое значение из HEX-представления.
Позволяет конвертировать числа между произвольными системами счисления (от 2 до 36). Более универсальна, чем dechex, но может быть менее эффективна для конкретного случая преобразования в шестнадцатеричную систему.
С помощью формата %x или %X также позволяет получить шестнадцатеричное представление. Полезно, когда требуется дополнительное форматирование строки.
Аналоги функции в других языках
Dechex в Python
Используется встроенная функция hex(), которая возвращает строку с префиксом '0x'.
print(hex(255))0xff
Dechex в Javascript
Метод toString(16) у чисел или функция Number.toString() с указанием основания системы счисления.
console.log((255).toString(16));ff
Dechex в MySQL
Функция HEX() конвертирует число или строку в шестнадцатеричное представление.
SELECT HEX(255);FF
Типичные ошибки
До PHP 8 это могло приводить к неожиданным результатам. В PHP 8 возникает ошибка TypeError.
<?
// PHP 7 и ранее
echo dechex('abc');
?>0
Функция не добавляет ведущие нули или префиксы. При необходимости их нужно добавлять самостоятельно.
<?
echo dechex(15); // Ожидание '0f', но результат 'f'
?>f
Изменения в PHP 8
В PHP 8 функция стала более строгой к типам передаваемых аргументов. При передаче нечислового значения (например, строки, не содержащей число) возникает ошибка TypeError. Ранее такие значения неявно преобразовывались в целые числа, что могло приводить к неочевидному поведению.
Расширенные примеры применения
<?
function rgbToHex($r, $g, $b) {
return '#' . dechex($r) . dechex($g) . dechex($b);
}
echo rgbToHex(255, 128, 0);
?>#ff8000
<?
$number = 15;
$hex = str_pad(dechex($number), 2, '0', STR_PAD_LEFT);
echo $hex;
?>0f
<?
$numbers = [10, 20, 30, 255];
$hexArray = array_map('dechex', $numbers);
print_r($hexArray);
?>Array
(
[0] => a
[1] => 14
[2] => 1e
[3] => ff
)<?
// Для чисел больше PHP_INT_MAX
$bigNumber = '18446744073709551615'; // 2^64 - 1
$hex = base_convert($bigNumber, 10, 16);
echo $hex;
?>ffffffffffffffff
<?
$id = time() . rand(1000, 9999);
$hexId = dechex($id);
echo $hexId;
?>653a2b8e