0

我有一些函数旨在将用户输入作为字符串转换为二进制数。这是我正在研究的基本“汇编程序”程序的一部分。这是我的代码:

    function generateBinaryNumber(inputValue) //only works for hash!
{
    var number;

    if(containsHash(inputValue) != -1)
    {
        number = getNumberFromString(inputValue);
    }

    return decimalToBinary(number);
}

function containsHash(number) //Working!
{
    var n = number.indexOf('#');
    return n;
}

function getNumberFromString(mixedInput) //Working!
{
    return (mixedInput.replace('#',''));
}

function decimalToBinary(decimal) //Working!
{
    decimal = parseInt(decimal);
    return decimal.toString(2);
}

例如,如果用户输入值“5”,该函数将返回 NaN - 但是如果他们指定 #5 它可以工作 - 返回 101。我是编程和 Javascript 的新手,如果有人能指出我正确的方向,那就太好了。谢谢!

4

1 回答 1

0

如果没有,你就没有通过输入#

function generateBinaryNumber(inputValue) //only works for hash!
{
    var number; //number is not set

    if(containsHash(inputValue) != -1) 
    {
        //number is set here, but only if the if statement is true
        number = getNumberFromString(inputValue);
    }
    //if containsHash was false, number is undefined
    return decimalToBinary(number);
}

你只想说var number=inputValue;当你宣布它

作为旁注,您还应该在 parseInt 中添加一个 radix 参数(类似于parseInt(decimal,10)),否则它会将输入"010"视为十六进制数字并错误地解析它。

于 2013-03-27T01:06:04.487 回答