使用PHP将十进制转换为十六进制


Convert decimal to hex using PHP

如何使用php将十进制值转换为十六进制?

Dec: 68-55-230-06-04-89

我想让hex value像这样

十六进制:44-37-E0-06-04-59,而不是这个显示44-37-E0-6-4-59

echo $test = dechex(68)."-".dechex(55)."-".dechex(230)."-".dechex(06)."-".dechex(04)."-".dechex(89);

给我输出:44-37-E0-6-4-59//没有06-04

我想输出44-37-E0-06-04-59

你可以试试sprintf

sprintf('%02X-%02X-%02X-%02X-%02X-%02X', 68, 55, 230, 6, 4, 89);

为获得44-37-E0-06-04-59只需添加0如下,

sprintf('%02X-%02X-%02X-%02X-%02X-%02X', 68, 55, 230, 06, 04, 89);
$dec= "68-55-230-06-04-89";
$arr= split("-",$dec);
foreach($arr as $key => $num)
{
    $arr[$key]=sprintf('%02X',dechex ($num));
}

//required results Array ( [0] => 44 [1] => 37 [2] => e6 [3] => 6 [04] => 4 [05] => 59 )
print_r($arr);

如果你假设在横线之间有最大的FF,那么类似的东西应该可以工作:

$foo = explode("-", $dec);
foreach ($foo as $dec_value) {
    echo ($dec_value > 16) ? dechex($dec_value) : "0".dechex($dec_value);
}