2015-11-03 94 views
-3

我已经给出了将十进制转换为二进制和十六进制的任务。二进制工作正常,但我用十六进制转换器将数字10-15分配给A-F时出现问题。如何将一个字母分配给一个整数?

这是到目前为止我的PHP函数:

function dez2hex2($zahl){ 
$erg2 = ""; 
$rest = ""; 
while ($zahl > 0) { 
    $rest = $zahl % 16; 
    $zahl = (int) ($zahl/16); 
    $erg2 = $rest . $erg2; 
} 

    echo '<br>'.$erg2; 

} 

注:我试图用变量这样做,但我不能让它工作,我知道有dechex()等,但这是我的作业。

+3

但是有一个现成的函数['dechex()'](http://php.net/manual/en/function .dechex.php)。 – Viral

+2

听起来像作业.... –

+4

@ AntonyD'Andrea - 海报实际上说,它是作业 –

回答

1

因为通常有很多方法可以做到这一点。我认为最干净的一个是,当你计算数量,使用数组

$hex = array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'); 

现在,只需使用$hex[ $number ]以获得正确的十六进制的对应关系。

0

这将是你的函数:

function dez2hex2($zahl){ 
    $hexarr = array(0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f'); 
    $erg2 = ""; 
    $rest = ""; 
    while ($zahl > 0) { 
     $rest = $zahl % 16; 
     $zahl = (int) ($zahl/16); 
     $erg2 = $hexarr[$rest] . $erg2; 
    } 
    echo '<br>'.$erg2; 

} 

dez2hex2(2030); //output 7ee 
echo dechex(2030); //ouput 7ee 
相关问题