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

时间:2013-03-21 10:19:08

标签: php hex decimal

如何使用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

的内容

4 个答案:

答案 0 :(得分:2)

您可以尝试sprintf

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

答案 1 :(得分:1)

要获取44-37-E0-06-04-59,只需添加0,如下所示

sprintf('%02X-%02X-%02X-%02X-%02X-%02X', 68, 55, 230, 06, 04, 89);

答案 2 :(得分:1)

$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);

答案 3 :(得分:0)

如果你假设破折号之间有最大的FF,

这样的东西应该有效:

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