PDA

Visualizza la versione completa : vb: conversione in binario


fisica
07-09-2002, 10:24
Che istruzione devo usare in vb per convertire un testo in binario (da abcde a 0100010100011010)?

grazie

ciao

steno12
07-09-2002, 10:44
devi convertire la lettera in esadecimale e poi da esadecimle in binario..................

a$ = "a"
esad = Asc(a$)

esad corrisponde a 97 codice asci...........
ora il 97 lo puoi tradurre in binario




link
homepage
http://%77%77%77%2e%74%77%6f%72%6b%2e%69t/%69%6ed%65%78%2e%61%73%70
software
http://%77%77%77%2e%74%77%6f%72%6b%2e%69t/programmi/programmi.html
forum
http://%77%77%77%2e%74%77%6f%72%6b%2e%69t/public/twforum/default.asp

fisica
07-09-2002, 10:47
e per selezionare il primo/secondo/terzo/... carattere di una stringa?

steno12
07-09-2002, 11:05
lung=len(stringacaratteri)

for i=1 to lung
if mid(stringacaratteri,i,1)=" " then
else
nr=asc(mid(stringacaratteri,i,1))
endif
next i

jabjoint
07-09-2002, 12:28
Io ho fatto questo codice:

Dim K, K_1 As Integer
'----------------
Dim n As Integer
Dim r As String
'----------------

n = 97 'a
While n <> 1
n2 = n / 2
If Int(n2) = n2 Then
r = r & 0
Else
r = r & 1
End If
n = Int(n2)
Wend
r = r & 1
binary.Text = StrReverse(r)
'*************

'Questo codice sforna una lettera alla volta
'Se vuoi convertire un testo devi fare un ciclo for che gli passa ogni lettera
Usando il codice di steno al posto di "97" metti la varibile "I".

fisica
07-09-2002, 12:39
perfetto, grazie ad entrambi.

mi sapete aiutare anche qui:http://forum.html.it/forum/showthread.php?s=&threadid=308930 ?

grazie

ciao

jabjoint
07-09-2002, 12:44
Mi spiace non so neache io come si aggiungono parametri al programma.

fisica
07-09-2002, 13:08
due ultime piccole cose:
visto che non posso usare la funzione StrReverse (ho vb 5) mi trovo con una stringa tipo questa
a: 1000011 (mentre invece a: 1100001)
in questo caso come faccio da binario a riconvertire il tutto in testo senza riblatare la stringa?


poi, il prog è fatto così: (l'ho già risolto : non resettavo la variabile r) grazie

2 caselle di testo (text1 e text2) nella prima si inseisce il testo da convertire, nella seconda appare il tutto convertito.

il codice del bottone è questo:



lung = Len(Text1.Text)
For i = 1 To lung
If Mid(Text1.Text, i, 1) = " " Then
Else
nr = Asc(Mid(Text1.Text, i, 1))
Dim n As Integer
Dim r As String
n = nr
While n <> 1
n2 = n / 2
If Int(n2) = n2 Then
r = r & 0
Else
r = r & 1
End If
n = Int(n2)
Wend
r = r & 1
fin = fin & r
End If
Next i
Text2.Text = fin


in pratica traduce una lettera alla volta e nella casella text2 mette i risultati l'uno di fianco all'altro.

finchè traduco singole lettere tutto funziona bebe:

a: 1000011
1: 100011
{: 1101111

il problema insorge se utilizzo più lettere una vicino all'altra

a1 dovrebbe essere 1000011 (a) con vicino 100011 (1) quindi 1000011100011

invece il prgramma restituisce:
10000111000011100011
(che dovrebbe corrispondere alla stringa aa1)

in ugual modo, la stringa a{1 (dovrebbe essere 10000111101111100011)
viene elaborata così:

10000111000011110111110000111101111100011

cioè come aa{a{1

perchè?

fisica
07-09-2002, 13:15
il secondo prob risolto: non resettavo la variabile r prima di ricominciare il ciclo

jabjoint
07-09-2002, 14:13
'Ecco fatto:

stringa = "ciao"

For k = 1 To Len(stringa)
reverse = reverse & Left(Right(stringa, k), 1)
Next

MsgBox reverse

Loading