如何在不使用PHP本机函数的情况下将二进制转换为十进制


How to convert binary to decimal without using PHP native functions?

我的代码如下:

<?php
function binary_to_decimal($a) {
    $bin_array = str_split($a);
    $y=sizeof($bin_array)-1;
    for ($x=0; $x<sizeof($bin_array)-1; $x++) {
        if ($bin_array[$x] == 1) {
            $bin_array[$x] = bcpow(2, $y);
        }
        $y--;
    }
    for ($z=0; $z<sizeof($bin_array); $z++) {
        $result = bcadd($result, $bin_array[$z]);
    }
    echo $result;
}
binary_to_decimal('11111');
?>

它仍然使用PHP本机函数。例如:bcpow、sizeof、bcadd。

它是否可以在不使用PHP原生函数的情况下将二进制转换为十进制?

感谢

http://php.net/manual/en/function.bindec.php#44910

function reconvert($bin_nr) {
 $base=1;
 $dec_nr=0;
 $bin_nr=explode(",", preg_replace("/(.*),/", "$1", str_replace("1", "1,", str_replace("0", "0,", $bin_nr))));
 for($i=1; $i<count($bin_nr); $i++) $base=$base*2;
 foreach($bin_nr as $key=>$bin_nr_bit) {
     if($bin_nr_bit==1) {
         $dec_nr+=$base;
         $base=$base/2;
     }
     if($bin_nr_bit==0) $base=$base/2;
 }
 return(array("string"=>chr($dec_nr), "int"=>$dec_nr));
}

查看此处:https://eval.in/556903