到目前为止,这是我的代码。
<html>
<body>
<script type="text/javascript">
function add(ai, bi) {
var newadd = [ai.length+1];
for(i = 0 ; i < ai.length ; i ++) {
if(i>0) {
newadd[i]=fullAdd(ai[i],bi[i],fullAdd(ai[i-1],bi[i-1],0).charAt(1)).charAt(0);;
}
else {
newadd[i]=fullAdd(ai[i],bi[i],0).charAt(0);
}
}
return newadd;
}
function fullAdd(ai, bi, ci) {
var ao = ((ai^bi)^ci);
var co = (((ai^bi)&ci)|(ai&bi));
return ao+""+co;
}
var a = [1,0];
var b = [0,1];
document.write("a + b = " + add(a,b));
</script>
</body>
我做错了什么? 我敢肯定这是愚蠢或愚蠢的事情,或者我自我设计的系统是行不通的。 无论如何,谢谢你提前帮助! -Devan
注意:完整加法器确实有效,并返回它应该的字符。问题是添加功能。
编辑:修正了2个明显的错误
EDIT2:我通过改变添加功能来接近答案。
EDIT3:已解决,这是可行的代码
<html>
<body>
<script type="text/javascript">
function add(ai, bi) {
var newadd = [ai.length+1];
for(i = 0 ; i < ai.length+1 ; i ++) {
if(i>0) {
newadd[i]=fullAdd(ai[i],bi[i],fullAdd(ai[i-1],bi[i-1],0).charAt(1)).charAt(0);;
}
else {
newadd[i]=fullAdd(ai[i],bi[i],0).charAt(0);
}
}
return newadd;
}
function fullAdd(ai, bi, ci) {
var ao = ((ai^bi)^ci);
var co = (((ai^bi)&ci)|(ai&bi));
return ao+""+co;
}
var a = [1,0,1,1];
var b = [0,1,0,1];
document.write("a + b = " + add(a,b));
</script>
</body>
谢谢你们!
答案 0 :(得分:0)
可能你想要
document.write("a + b = " + add(a,b));
而不是
document.write("a + b = " + newadd(a,b);
答案 1 :(得分:0)
原文缺少“)”并使用“newadd”
另外,我不知道你是否应该使用(i = 0; i = 0; i - )
假设原来的那个,那么也许你应该使用 if(i> 0){ newadd [I] = FULLADD(AI [I],双[I],newadd [I] .charAt(0));
newadd[i+1]=fullAdd(ai[i],bi[i], newadd[i].charAt(1));
}
答案 2 :(得分:0)
另外,我不知道你是否应该使用 for(i = 0; i&lt; ai.length; i ++)或for(i = ai.length-1; i&gt; = 0; i - )
假设原来的那个,那么也许你应该使用:
if(i> 0){ newadd [I] = FULLADD(AI [I],双[I],的 newadd [I] 强> .charAt(0)); newadd [i + 1] = fullAdd(ai [i],bi [i], newadd [i] .charAt(1)); }