要将十进制值转换为二进制值,我们需要将十进制数除以 2 并得到一个整数商,然后再次将余数除以 2 并得到商,重复此过程直到商变为 0。之后,我们必须以相反的顺序打印商。例如,如果十进制数是 10
10 / 2 = 5 余数 0
5 / 2 = 2 余数 1
2 / 2 = 1 余数 0
1 / 2 = 0 余数 1
10 的二进制等价物将是 1010
在此程序中,我们接受用户输入的十进制值并将其赋值给变量 num,然后我们必须调用带参数 num 的用户定义函数 decToBin()。在函数 decToBin() 中,我们首先创建一个空数组 binNum[],然后将值 0 赋给变量 i。之后,我们执行 while 循环 直到条件 'n > 0' 变为假,以将商值存储到数组 binNum[] 中。为此,我们首先将 'n % 2' 的计算值赋给数组 binNum[i],然后将 'n / 2' 的计算整数值赋给变量 n,最后在 while 循环完成后递增变量 i 的值。之后,我们执行 for 循环以逆序打印数组的元素。首先,将值 'i - 1' 赋给变量 j,然后执行循环直到条件 'j >= 0' 变为假,并在每次迭代中递增变量 j 的值。在循环块中,我们打印数组 binNum[i] 的值。
步骤 1: 将十进制值赋给变量 num
步骤 2: 调用带参数 num 的用户定义函数 decToBin()
步骤 1: 创建一个空数组 binNum[]
步骤 2: 将值 0 赋给变量 i
步骤 3: 执行子步骤直到条件 'n > 0' 变为假
(i) 将 'n % 2' 的计算值赋给数组 binNum[i]
(ii) 将 'n / 2' 的计算整数值赋给变量 n
(iii) 递增变量 i 的值
步骤 4: 执行 for 循环以逆序打印数组的元素。首先,将值 'i - 1' 赋给变量 j,然后执行子步骤直到条件 'j >= 0' 变为假,并在每次迭代中递增变量 j 的值
(i) 打印数组 binNum[i] 的值
<?php
function decToBin($n)
{
$binNum = array();
$i = 0;
while ($n > 0) {
$binNum[$i] = $n % 2;
$n = (int)($n / 2);
$i++;
}
for ($j = $i - 1; $j >= 0; $j--)
echo $binNum[$j];
}
$num = readline("Enter the value in decimal: ");
echo "Binary equivalent of $num is ";
decToBin($num);
?>
Enter the value in decimal: 28 Binary equivalent of 28 is 11100