我必須用PHP(不使用hexdec
)將十六進制轉換爲十進制來完成我的作業,但是我的代碼無法正確轉換。將十六進制轉換爲十進制php
例如,當我使用功能HexToDez ("1F4");
,答案應該是500,而不是1
爲什麼不工作?
代碼
<?php
function Replace ($i)
{
switch (strToLower ($i))
{
case "a" : return 10;
case "b" : return 11;
case "c" : return 12;
case "d" : return 13;
case "e" : return 14;
case "f" : return 15;
default : return $i;
}
}
function HexToDez($i) # 1F4
{
$input=$i;
$num=strlen ($input) ;
$pos=0;
$output="";
$hochzahl="";
while($pos<$num)
{
$mid = substr ($input, $pos, 1);
$pos++;
return $end=Replace ($mid);
}
while ($end != 0){
$zahl = $input%10;
$output += $zahl*pow(16, $hochzahl);
$end = $end/10;
$hochzahl++;
}
echo $output;
}
?>
你是什麼意思「似乎沒有w掃「?什麼_exactly_是你的問題? – arkascha
@arkascha當我使用函數HexToDez(「1F4」);答案應該是500而不是1 –
那是因爲你用'return $ end = Replace($ mid);'返回它。你可能想看看'return'的功能。 – Federkun