在PHP中将十进制数转换为二进制数

Sal*_*ore 0 php while-loop

我有这个函数,它将数字从十进制转换为二进制.

<?php
function DecimalTOBinary($num)
{
    $a = "";
    $b = "";
    $x = 0;
    while ($num !=0)
    {
        $b .= $num % 2;
        $num = $num /2;
    }
    /*
    for($i = strlen($b) -1;$i >=0;$i--)
    {
        a .= substr($b,$i,$i +1);
    }*/
    return $b;

}
?>
Run Code Online (Sandbox Code Playgroud)

我的问题是它将返回字符串:

010010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

我只想回来:

0100101
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Cor*_*Xii 5

$num = $num / 2;可能会进行分数除法(隐式转换为浮点数),导致$num接近0但需要很长时间才能达到目标.使其$num = floor($num / 2);将其向下舍入为整数.

请注意,还有decbin()用于实现此目的的内置方法.


示例性(但多余的):

function DecimalTOBinary($num)
{
    return decbin($num);
}
Run Code Online (Sandbox Code Playgroud)