2015-11-03 119 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 
相關問題