要将二进制数转换为十进制,我们必须根据其位置(从0开始反向)找到每个二进制数字的幂,并将它们相加。例如,如果输入的数字是 1011,那么我们计算 (1 × 2³) + (0 × 2²) + (1 × 2¹) + (1 × 2⁰),结果是 11。
在此程序中,我们使用内置函数 bindec() 将二进制转换为十进制值。首先,我们必须接受用户输入的二进制值并将其赋给变量 bin,并且我们必须创建一个值为 true 的变量 flag,并将变量 bin 的长度赋给变量 len。然后我们必须执行 for 循环来检查输入的 num 是否是有效的二进制数,首先将值 0 赋给变量 i,并执行循环直到条件 'i < len' 变为假,并且在每次迭代中递增变量 i 的值。在循环块中,我们必须检查条件 'bin[i] != 0' 和 'bin[i] != 1',如果两者都为真,则将值 false 赋给变量 flag。循环完成后,我们必须检查变量 flag 的值,如果为 true,则将内置函数 'bindec(bin)' 的值赋给变量 dec,并打印变量 dec 的值作为变量 bin 的二进制等效项,否则打印输入的数字不是有效的二进制数。
bindec() 函数的语法
bindec(binary_string);
步骤 1: 将二进制数赋给变量 bin
步骤 2: 创建一个值为 true 的变量
步骤 3: 将变量 bin 的长度赋给变量 len
步骤 4: 执行 for 循环以检查输入的数字是否是有效的二进制数,首先将值 0 赋给变量 i,并执行以下子步骤,直到条件 'i < len' 变为假,并且在每次迭代中递增变量 i 的值
(i) 检查条件 'bin[i] != 0' 和 'bin[i] != 1',如果两者都为真,则将值 false 赋给变量 flag
步骤 5: 检查变量 flag 的值,如果为 true,则将内置函数 'bindec(bin)' 的值赋给变量 dec,并打印变量 dec 的值作为变量 bin 的二进制等效项,否则打印输入的数字不是有效的二进制数
<?php
$bin = readline("Enter the binary value: ");
$flag = true;
$len = strlen($bin);
for ($i = 0; $i < $len; $i++) {
if ($bin[$i] != 1 && $bin[$i] != 0) {
$flag = false;
}
}
if ($flag) {
$dec = bindec($bin);
echo "Decimal equivalent of $bin is $dec";
} else {
echo "Enter a valid binary number.";
}
?>
Enter the binary value: 100111 Decimal equivalent of 100111 is 39