编写自己的函数将十进制数转换为二进制数
Write own function to convert decimal numbers to binary
我正在尝试编写自己的函数来将十进制数转换为二进制数。我知道有用于此的内置函数,但我正在尝试在这里编写自己的函数,但我无法正常工作。
现在下面的代码没有给我任何输出。我是 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>
你只是做了一个无限递归,我的意思是你把结果作为参数一遍又一遍地调用函数。
- 编辑 -
所以你的函数不起作用,但我想出了这个,它确实起作用了。试试看:
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);
?>
我正在尝试编写自己的函数来将十进制数转换为二进制数。我知道有用于此的内置函数,但我正在尝试在这里编写自己的函数,但我无法正常工作。
现在下面的代码没有给我任何输出。我是 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>
你只是做了一个无限递归,我的意思是你把结果作为参数一遍又一遍地调用函数。
- 编辑 -
所以你的函数不起作用,但我想出了这个,它确实起作用了。试试看:
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);
?>