Как преобразовать числа в первом классе в PHP в числа во втором классе, есть ли встроенная функция для преобразования чисел? Также верно ли мое название « Преобразовать целое число в шестнадцатеричные значения »?
class Permission { const READ = 1; const UPDATE = 2; const DELETE = 4; const COMMENT = 8; const GRANT = 16; const UNDELETE = 32; const WHATEVER = 64; }
в этот
class Permission { const READ = 0x0001; const UPDATE = 0x0002; const DELETE = 0x0004; const COMMENT = 0x0008; const GRANT = 0x0010; const UNDELETE = 0x0020; const WHATEVER = 0x0040; }
Чтобы разработать немного больше того, что я пытаюсь сделать.
В настоящее время я использую первый класс с классом битмаски для настроек,
кто-то предложил мне перейти на формат во втором классе.
Однако я не знал, как они придумали цифры стиля 0x0020 из числа в моем первом классе.
Теперь я вижу, как получить 20 из 32, но я не знаю, как и почему они добавили 0x00 перед ним, чтобы сделать 0x0020 для замены моего оригинального 32
Я немного запутался здесь … 0x01 = 1. 0x020 = 32 и т. Д.
Вы ищете некоторые из форматировщиков строк, которые доступны в printf / sprintf? Маркер% x можно использовать для вывода шестнадцатеричных значений.
edit: Кроме того, да, ваши преобразования верны.
Вы хотите:
dechex()
http://php.net/manual/en/function.dechex.php
Которая является десятичной до шестнадцатеричной.
Вы не можете просто ввести шестнадцатеричные числа для начала?
Попробуйте sprintf () / printf (), чтобы конвертировать их на лету:
printf('%x', 42); // 2a