Dechex: примеры (PHP)

Использование PHP функции dechex для работы с шестнадцатеричными числами
Раздел: Преобразование типов/форматов
dechex(int $num): string

Основные сведения о функции dechex

Функция dechex в PHP предназначена для преобразования десятичного целого числа в его шестнадцатеричное строковое представление. Эта функция часто используется в задачах, связанных с низкоуровневым программированием, обработкой цветов (например, в веб-разработке для HEX-кодов), генерацией идентификаторов или при работе с бинарными данными.

Аргументы функции

Функция принимает один обязательный аргумент:

  • $num (int) - Десятичное целое число, которое необходимо преобразовать. Если передано отрицательное число, оно будет интерпретировано как беззнаковое целое.

Возвращаемое значение - строка, содержащая шестнадцатеричное представление переданного числа. Буквы в результате возвращаются в нижнем регистре.

Короткие примеры использования

Базовое преобразование
<?
echo dechex(255);
?>
ff
Преобразование отрицательного числа
<?
echo dechex(-1);
?>
ffffffffffffffff
Работа с большими числами
<?
echo dechex(123456789);
?>
75bcd15

Похожие функции в PHP

Выполняет обратное преобразование - из шестнадцатеричной строки в десятичное число. Используется, когда нужно получить числовое значение из HEX-представления.

base_convert

Позволяет конвертировать числа между произвольными системами счисления (от 2 до 36). Более универсальна, чем dechex, но может быть менее эффективна для конкретного случая преобразования в шестнадцатеричную систему.

sprintf

С помощью формата %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. Ранее такие значения неявно преобразовывались в целые числа, что могло приводить к неочевидному поведению.

Расширенные примеры применения

Генерация HEX-цвета из RGB компонентов
Пример php
<?
function rgbToHex($r, $g, $b) {
    return '#' . dechex($r) . dechex($g) . dechex($b);
}
echo rgbToHex(255, 128, 0);
?>
#ff8000
Форматирование с ведущими нулями
Пример php
<?
$number = 15;
$hex = str_pad(dechex($number), 2, '0', STR_PAD_LEFT);
echo $hex;
?>
0f
Преобразование массива чисел
Пример php
<?
$numbers = [10, 20, 30, 255];
$hexArray = array_map('dechex', $numbers);
print_r($hexArray);
?>
Array
(
    [0] => a
    [1] => 14
    [2] => 1e
    [3] => ff
)
Работа с большими числами через строки
Пример php
<?
// Для чисел больше PHP_INT_MAX
$bigNumber = '18446744073709551615'; // 2^64 - 1
$hex = base_convert($bigNumber, 10, 16);
echo $hex;
?>
ffffffffffffffff
Создание уникального идентификатора
Пример php
<?
$id = time() . rand(1000, 9999);
$hexId = dechex($id);
echo $hexId;
?>
653a2b8e

PHP dechex function comments

En
Dechex Decimal to hexadecimal