2015-11-03 7 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 
Смежные вопросы