hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 14 janv. 2003 à 13:22
C'est un de mes touts premier codes, c'est donc tres vieux et pas optimisé, mais ca à la merite d'etre commenté :
Function DeciBinr(decibin As Variant)
Dim reslt As StringDo Until decibin <0.5 ' on fait tourner la boucle jusqu'a ce que decibin soit ou inferieur a 0,5
decibin2 = decibin / 2 If Int(decibin2) decibin2 then reslt 0 & reslt Else reslt = 1 & reslt 'si la valeur integer de decibin2 est egale a decibin2 , alors :
on ajoute un zero à droite sinon on ajoute un 1
decibin = Int(decibin2) ' on garde la valeur integer decibin2 dans decibin
Format decibin2 ' on format decibin2
Loop ' fin de boucle
DeciBinr = reslt 'le resultat de la fonctiin DeciBinr est reslt
reslt = "" 'on reinitialise reslt
End Function
et pour l'autre sens que je vais d'ailleurs penser a réecrire plus clairement en .net :
Function BinrDeci(breslt As Variant)
Dim binR
binR = CVar(breslt) 'binR est egale à la valeur Variant de breslt
x = Len(breslt) 'x vaut la longeur de la chaine de characteres breslt
y = x
z = 0Do Until x 0 'on fait tourner la boucle jusqu'à x 0
z = z + (CVar(Mid(binR, x, 1) * (2 ^ (y - x)))) ' z est egale à z + la valeur Variant du x eme characteres (on commence par le dernier) de la chaine multiplié par 2 a la puissance y - x
x = x - 1 ' on soustrait 1 de x
Loop ' fin de boucle
BinrDeci = z ' la fonction binrDeci est egale à z
End Function
Comme je l'ai dit c'est pas optimisé du tout, mais la methode marche...au moins t'auras eu une reponse rapide
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 14 janv. 2003 à 18:10
Private Function decimal_binaire(dec As Long) As String
Do decimal_binaire ("1" And dec Mod 2 1) & decimal_binaire
dec = dec \ 2
If dec = 0 Then Exit Do
Loop
End Function
Private Function binaire_decimal(bin As String) As Long
For i = Len(bin) To 1 Step -1
binaire_decimal = binaire_decimal + Mid(bin, i, 1) * 2 ^ (Len(bin) - i)
Next i
End Function