我怎样才能使这个二进制代码递归
问题描述:
任何人都可以知道如何使这个代码进入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>
答
我所做的是一种字符处理的,但是这将动态和工作也有某种形式的递归。
<!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>
绝对没有必要在这里使用递归。你有兴趣在
重新发明你自己实现'parseInt'和'toString'吗?如果你坚持,你可以使用递归。 – Bergi