浏览速度减慢了JavaScript代码

时间:2020-01-27 11:03:12

标签: javascript for-loop math browser binary

我正在为我开发JavaScript库。该库将帮助您将二进制数转换为十进制数。默认的JavaScript函数只能在点(整数)之前转换。但是这段代码也可以(希望)转换浮点数。

为了在我返回Firefox上运行此代码时进行测试,

此页面使您的浏览器变慢。

&Google Chrome浏览器仅返回加载状态。

所以我想知道是什么问题?? 这是我的代码

var x = "101.11";
var r = 0;
var ra = 0;
for (var i = 0; i < x.length; ++i) {
  if (x.charAt(i) == ".") {
    var Ap = i;
  }
}

for (var j = 0; j < (x.length - Ap); ++j) {
  var a = x.charAt(j);
  r = r + a * Math.pow(2, ((x.length - Ap - 1) - j));
}

for (var k = Ap + 1;
  (x.length - Ap) < k; ++k) {
  var b = x.charAt(k);
  ra = ra + b * Math.pow(2, (Ap - k));
}
document.write(r);
if (ra <= 0) {
  document.write("." + ra);
}

1 个答案:

答案 0 :(得分:0)

这是解决方案。我非常感谢你们。

/*

It's a dumb library for converting binary   fraction number into a desimal number.
Created by : Adib Rahman
Last update : 12:36 30/01/2020

*/

function print(something)
{
document.write(something);
}

var x = "010101010.111";
var r = 0;
var ra = 0;
for(var i=0;i<x.length;++i)
{
    if(x.charAt (i)== ".")
{
var Ap=i;
}
}

var beforePoint = (x.length-(x.length-Ap-1))-1;
var afterPoint = x.length-Ap-1;

for(var j=0;j<beforePoint;++j)
{
r = r+(x.charAt(j))*Math.pow(2,(beforePoint-j-1));
}

for(var k=Ap+1;k<x.length;++k)
{
var ra = ra+(x.charAt(k))*Math.pow(2,(Ap-k));
}
//Final Result
if(ra >=0)
{
print(r+ra);
}
else
{
print(r);
}