繁体   English   中英

Javascript二进制到十进制计算器

[英]Javascript Binary to Decimal Calculator

我不知道为什么这段代码行不通,任何人都可以帮忙:

toDecimal: function () {
    var counter = 0;
    var decimalValue = 0;
    for (var i = 7; i > 0; i--){
        var binaryValue = self.binaryArray[i];
        decimalValue += binaryValue * Math.pow(2, counter);
        counter++;
    }
    return decimalValue;
}

代码self.binaryArray只是一个数字数组(仅包含8个字节,这是我需要使用的全部),例如[0,0,0,0,1,1,1,1]

第二次

您能提供一种简便的方法来计算计数器吗?在我的一生中,我无法弄清楚如何从i值计算计数器,这实际上应该很简单,但算起来并不难。

谢谢

您的原始循环永远不会处理binaryArray[0] 对于“更流畅”的工作方式,假设binaryArray[0]是最高有效位,我将这样编写您的循环:

toDecimal: function () {
    var decimalValue = 0;
    for (var i = 0; i < 8; i++){
        decimalValue = (decimalValue << 1) + self.binaryArray[i];
    }
    return decimalValue;
}

(左移只是乘以2的快速方法。)

但是,我喜欢StephenH的建议:

toDecimal: function () {
    return parseInt(self.binaryArray.join(''), 2);
}

为什么不只使用JavaScript的内置parseInt函数呢?

语法:parseInt(string,radix);

var n = parseInt(“ 10001”,2);

n = 17

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM