Hé les gars, aujourd'hui, j'ai été inspiré par un ALU 16 bits fait dans Mincraft pour essayer de faire mon propre additionneur. J'ai littéralement commencé JavaScript aujourd'hui, et j'ai joué avec les portes logiques au cours des deux derniers jours. Donc, je suis très nouveau à cela.Aide avec l'additionneur de bits auto-extensible JavaScript
Voici mon code jusqu'à présent.
<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>
Qu'est-ce que je fais mal? Je suis sûr que c'est quelque chose de stupide ou de stupide, ou que mon système auto-conçu ne fonctionnera tout simplement pas. En tout cas merci pour votre aide à l'avance! -Devan
Remarque: l'additionneur complet fonctionne et renvoie les caractères qu'il devrait contenir. Le problème est la fonction d'ajout.
EDIT: fixe les 2 erreurs évidentes
EDIT2: Je suis venu près de la réponse en changeant la fonction ajouter un peu.
EDIT3: Résolu, voici le code qui fonctionne
<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>
Merci les gars!
oui je viens de le résoudre, en utilisant une variation de ce que vous avez utilisé. (ai.length + 1 dans l'instruction for) –