2016-03-08 112 views
0

任何人都可以知道如何使这个代码进入JavaScript的递归?我想制作一个代码将二进制转换为十进制,但在JavaScript中使用递归。我怎样才能使这个二进制代码递归

<html> 
<head> 
    <title>Converting Binary to Decimal</title> 
</head> 
<style> 
</style> 
<body> 
    <div> 
     <input type="text" id="binary" /> 
     <input type="submit" value="convert" onclick="convertBinary()" /> 
    </div> 
    <script> 
     function convertBinary() 
     { 
      var binaryNumber = document.getElementById('binary').value; 
      binaryNumber = parseInt(binaryNumber,2); 
      var decimalNumber = binaryNumber.toString(10); 
      alert(decimalNumber) 
     } 
    </script> 
</body> 

+0

绝对没有必要在这里使用递归。你有兴趣在重新发明你自己实现'parseInt'和'toString'吗?如果你坚持,你可以使用递归。 – Bergi

回答

0

我所做的是一种字符处理的,但是这将动态和工作也有某种形式的递归。

<!DOCTYPE html> 
<html> 
<head> 
    <title>Sample</title> 
</head> 

<body> 
    <div class="container"> 
     <form> 
      <h4>Enter a binary value to convert into a decimal value.</h4> 
      Binary number : <input type="number" id="num1" onkeyup="bintodec(num1.value)"><br/><br/> 
      Result:<br/><br/> 
      <div id="res"></div> 
     </form>              
    <div> 

</body> 
<script type="text/javascript"> 

var tmp =0; 
function bintodec(b){ 
    len = b.length-1; 
    if(b.charAt(0)==0||b.charAt(0)==1){ 
     if(b.charAt(0) == "1" && b != ""){ 
      tmp = tmp + Math.pow(2,len); 
     } 
     display(b); 
    } 
    else{ 
     tmp="Input may only contain ones and zeroes."; 
     display(""); 
    } 
} 
function display(bn){ 
    if(bn.slice(1) == ""){ 
     document.getElementById('res').innerHTML=tmp; 
     tmp = 0; 
    } 
    else{ 
     bn = bn.slice(1); 
     bintodec(bn); 
    } 
} 
</script> 
</html>