[英]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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.