View Full Version : [VB6] Convertitore Binario - Decimale
Karkatys
23-11-2011, 13:30
Salve, sto provando a creare un Convertitore da Binario a Decimale, ma c'è qualche problemino.. 111 per esempio mi viene 14 invece di 7.. :confused: Questo è il codice che ho usato:
Private Sub Command2_Click()
s = bin.Text
For I = Len(s) To 1 Step -1
If Mid(s, I, 1) = "1" Then
Risultato = Risultato + 2 ^ I
End If
Next I
dec.Text = Risultato
End Sub
Mi date una dritta? Grazie!
Salve, sto provando a creare un Convertitore da Binario a Decimale, ma c'è qualche problemino.. 111 per esempio mi viene 14 invece di 7.. :confused: Questo è il codice che ho usato:
Private Sub Command2_Click()
s = bin.Text
For I = Len(s) To 1 Step -1
If Mid(s, I, 1) = "1" Then
Risultato = Risultato + 2 ^ I
End If
Next I
dec.Text = Risultato
End Sub
Mi date una dritta? Grazie!
14 come risultato non mi torna.
comunque prendi questa stringa lunga 4:
0101
l'array s sarà fatto così:
s[1] = 0 = 0*2^3 (quindi l'esponente è 4, cioè len(s)-indiceArray
s[2] = 1 = 1*2^2 (quinidi l'esponente è 3, etc. etc)
s[3] = 0 = 0*2^1 (idem)
s[4] = 1 = 1*2^0 (idem)
Che non corrisponde al tuo calcolo.
:)
icecube_HU
24-11-2011, 08:39
Salve, sto provando a creare un Convertitore da Binario a Decimale, ma c'è qualche problemino.. 111 per esempio mi viene 14 invece di 7.. :confused: Questo è il codice che ho usato:
Private Sub Command2_Click()
s = bin.Text
For I = Len(s) To 1 Step -1
If Mid(s, I, 1) = "1" Then
Risultato = Risultato + 2 ^ I End If
Next I
dec.Text = Risultato
End Sub
Mi date una dritta? Grazie!
L'esponente deve essere (I-1).Ciao !
L'esponente deve essere (I-1).Ciao !
Ma de ghe? :muro:
icecube_HU
24-11-2011, 09:03
Ma de ghe? :muro:
Hai ragione, risposta frettolosa ! :D :cry:
Correggo:
risultato = risultato + 2 ^ (Len(s) - i)
icecube_HU
24-11-2011, 10:24
Nemmeno :D
:sofico: Mommolo, pròvolo ! :D ...prima di dire nemmeno ! :cool:
Magari rivedi anche il tuo schema:
s[1] = 0 = 0*2^4 (quindi l'esponente è 4, cioè len(s)-indiceArray+1
s[2] = 1 = 1*2^3 (quinidi l'esponente è 3, etc. etc)
s[3] = 0 = 0*2^2 (idem)
s[4] = 1 = 1*2^1 (idem)
...visto che prevede che il bit meno significativo sia "pesato" per 2^1, mentre invece deve essere "pesato" per 2^0, per cui TUTTI i tuoi esponenti devono essere ridotti di 1, quindi il mio (Len(s)-i) é corretto, non così il tuo (len(s)-indiceArray+1) !:Prrr:
Ciao !
Provolonissimo :D
Hai ragione :rolleyes:
icecube_HU
24-11-2011, 10:50
;) Ok, ciao !
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.