|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2009
Messaggi: 1413
|
[JavaScript]Problema funzione
Ciao a tutti, vi espongo il problema:
Ho fatto una funzione in JavaScript per una conversione Binario --> Decimale: Codice:
function bin_to_dec(a)
{
var vettore=new Array (32);
var errore=0;
var num=0;
for(var i=0;i<(a.length);i++)
{
if(a.charAt(i)!=0 && a.charAt(i)!=1)
errore++;
else
vettore[i]=a.charAt(i);
}
if (errore==0)
{
while (i>=0)
{
num=num+(vettore[i]*Math.pow(2,j));
i--;
j++;
}
document.getElementById("dec").innerHTML=num;
}
else
alert("Errore");
}
a è una stringa contenente 0 e 1 (se si mette altro mi manda l'alert("Errore")). Provando ad eseguire passo passo il codice sembra che il problema sia nella parte in grassetto. C'è qualche cosa che non funziona in quella parte? Grazie mille
__________________
PC: Carbide 400r, Corsair TX650M, FX8320, CM 412s, Gigabyte 970-UD3, G.skill Ares 2x4GB, Crucial M500 120GB, Seagate 7200.14 2TB, Seagate 7200.12 750GB, Gigabyte GTX570. Windows 10 Pro Notebook: Dell Latitude E7450, i5-5300U, SSD 256Gb, 8GB. Windows 10 Pro LG G3 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Codice:
function bin_to_dec(a)
{
var vettore=new Array (32);
var errore=0;
var num=0;
for(var i=0;i<(a.length);i++)
{
if(a.charAt(i)!=0 && a.charAt(i)!=1)
errore++;
else
vettore[i]=a.charAt(i);
}
if (errore==0)
{
var j=0;
i--; // altrimenti i parte da a.length / in alternativa i=a.length-1;
while (i>=0)
{
num=num+(vettore[i]*Math.pow(2,j));
i--;
j++;
}
document.getElementById("dec").innerHTML=num;
}
else
alert("Errore");
}
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2009
Messaggi: 1413
|
Quote:
Effettivamente deve partire da a.length-1, altrimenti l'ultimo elemento "non esiste" (se a.length = 5; la posizione che ricopre l'ultima lettera è la 4, dico bene?) Tra l'altro nella funzione che avevo creato prima di questa (Dec --> Bin) l'avevo messo i--. j=0 svista mia. Grazie mille.
__________________
PC: Carbide 400r, Corsair TX650M, FX8320, CM 412s, Gigabyte 970-UD3, G.skill Ares 2x4GB, Crucial M500 120GB, Seagate 7200.14 2TB, Seagate 7200.12 750GB, Gigabyte GTX570. Windows 10 Pro Notebook: Dell Latitude E7450, i5-5300U, SSD 256Gb, 8GB. Windows 10 Pro LG G3 Ultima modifica di cirano994 : 31-03-2011 alle 20:37. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:39.




















