PHP конвертирует целое число в 32-битный (4 байта) гекс для программирования сокетов

Мне нужно преобразовать целое число в 4-байтовый (32-битный) гекс для отправки его как ACK на устройство, которое я сейчас пытаюсь интегрировать.

Например

3 = 00000003
15 = 0000000F

Проверьте http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html
1. Выберите подписанный 32 бит из выпадающего
2. Введите значение в текстовом поле decomal
3. Проверьте значение в шестнадцатеричном поле.

Я использую функцию php pack с этим параметром, но, судя по ответу устройства, это не совсем правильный подход.

$reply = pack(L*,$num);

Это правильный параметр или есть какой-то другой способ.
Пожалуйста, suuggest.

1

Решение

я бы сделал

$a = 15;
var_dump( sprintf("%08X", $a) );
$a = 3;
var_dump( sprintf("%08X", $a) );

это выводы

string(8) "0000000F"string(8) "00000003

08X означает создать строку из 8 символов, дополненную 0 (если необходимо) с аргументом, который рассматривается как шестнадцатеричный. (Заглавные буквы)

так в вашем примере

$reply = sprintf("%08X", $num)
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]