2013-03-21 180 views
0

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

12月: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

+0

在此处打印您的代码。 – sectus 2013-03-21 10:20:44

回答

1

为了得到44-37-E0-06-04-59就像下面添加0

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

小心06号码。 – sectus 2013-03-21 10:55:16

2

您可以尝试sprintf

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

这样的事情应该工作,如果你认为有最大FF的破折号之间:

$foo = explode("-", $dec); 
foreach ($foo as $dec_value) { 
    echo ($dec_value > 16) ? dechex($dec_value) : "0".dechex($dec_value); 
} 
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); 
相关问题