编写自己的函数将十进制数转换为二进制数

时间:2015-12-16 14:00:07

标签: php numbers

我正在尝试编写自己的函数来将十进制数转换为二进制数。我知道有这样的内置函数,但我试着在这里编写自己的函数,但我无法正常工作。

现在,下面的代码并没有给我任何输出。我是PHP的新手,所以一直暗示我出错的地方会有所帮助。

代码:

<?php

    {

    $dec = 0;

    if(isset($_POST['num'])) {
        $dec = $_POST['num'];
    }

    decimal_binary($dec);
    echo $dec;

    }

function decimal_binary($dec) 
{

    $rem;
    $i = 1;
    $binary = 0;
    while ($dec != 0)
    {
        $rem = $dec % 2;
        $dec /= 2;
        $binary += $rem * i;
        $i *= 10;
    }

    $dec = $binary;
    echo $binary;

    return decimal_binary($dec);

}


?>
<html> 
    <body>

    <form action="3.php" method="POST">
        Integer <input type="number" name="num">
        <input type="submit">
    </form>

    </body>
</html>

1 个答案:

答案 0 :(得分:0)

你刚做了无限递归,我的意思是你一遍又一遍地调用函数,结果作为参数。

- 编辑 -

所以你的功能不起作用,但我想出了这个,它确实有效。试试吧:

function decimal_binary($dec){
    $binary;
    while($dec >= 1){
        $rem = $dec % 2;
        $dec /= 2;
        $binary = $rem.$binary;
    }
    if($binary == null){
        $binary = 0;
    }
    return $binary;
}

- 结束编辑 -

此外,您需要在调用之前放置该函数,并且在调用它时,需要将其分配给变量,以便您可以在代码的其他部分使用输出值:

<?php

// function here

$dec = 0;
if(isset($_POST['num'])){
    $dec = $_POST['num'];
}

$bin = decimal_binary($dec);
?>