JavaScript Base10到Base2函数

时间:2015-07-29 02:54:59

标签: javascript html

javascript应该将输入转换为base2并将其显示在输出中。我很困惑为什么输出" o"与输入" num"完全相同。 我不明白为什么这不起作用。我知道数据正确传递,因为如果我在函数中放入简单的数学运算,那么输出就可以了。但是,当我尝试进行转换时,它将无法正常工作。

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="style.css">
    <title>Base Converter</title>
    <meta charset = "utf-8">
    <script>
        function Dec2Bin(val)
        {
            var num = val;
            var n = num.toString(2);
            convert.o.value = n;
        }
    </script>
</head>
<body>
    <center>
    <div class="banner"> <!--banner area-->
        Convert from base 10 to base 2
    </div>
    <div class="body"> <!--function area-->
        Please choose a number between 1 and 1,024

        <form name="convert" class="alignment">
            <input type="number" name="num">
            <input type="button" value="Convert" onclick="Dec2Bin(num.value)">
            <output name="o"></output>
        </form>
    </div>
</body>

2 个答案:

答案 0 :(得分:1)

这是因为num的值是一个字符串。因此,对字符串执行toString并不会做任何事情。您只需将num更改为数字即可。您可以通过执行var num = +valvar num = parseInt(val)

来执行此操作

&#13;
&#13;
function Dec2Bin(val)
{
    var num = +val;
    var n = num.toString(2);
    convert.o.value = n;
}
&#13;
        <form name="convert" class="alignment">
            <input type="number" name="num">
            <input type="button" value="Convert" onclick="Dec2Bin(num.value)">
            <output name="o" value=""></output>
        </form>
&#13;
&#13;
&#13;


注意:小心依赖DOM中的name项作为全局数据。因为它可能导致具有相同名称或其他浏览器的多个项目出现问题。您可能希望分配id并使用document.getElementById()

答案 1 :(得分:0)

while循环中,您会在int > 0时循环,但int永远不会更改。因此,它将永远循环(或0次)。

此外,int在技术上是JavaScript中的保留字,因此您应该避免使用它。像num这样的东西是合适的。