我的任务是将十进制转换为二进制和十六进制。二进制可以很好地工作,但我在用十六进制转换器将数字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()等,但这是我的家庭作业。
通常有很多方法可以做到这一点。我认为最干净的方法之一是使用阵列
$hex = array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
现在,当您计算数字时,只需使用$hex[ $number ]
即可获得正确的十六进制对应关系。
这将是您的函数:
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