7 lignes pour convertir un binaire en décimal

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 698 fois - Téléchargée 42 fois

Contenu du snippet

un tout petit code pour un petit service

Source / Exemple :


Function ConvertisseurBinToDec(ChiffreBinaire As String) As Long

Dim i As Integer
For i = (Len(ChiffreBinaire) - 1) To 0 Step -1
ConvertisseurBinToDec = ConvertisseurBinToDec + (CInt(Right(ChiffreBinaire, 1)) * 2 ^ (29 - i))
ChiffreBinaire = Left(ChiffreBinaire, i)
Next i

End Function

Conclusion :


appeler la fonction en transmettant le valeur a convertir sous forme d'une String dans la variable "ChiffreBinaire" et récupérer la valeur dans "ConvertisseurBinToDec"
attention à la limite du type Long de "ConvertisseurBinToDec"

A voir également

Ajouter un commentaire Commentaires
Messages postés
62
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
4 août 2004

Zeroc00l : Ton code fonctionne à 100%.

Merci les gars, après avoir lu de nombreux exemple de conversion binaires-hexa-décimales dans tous les sens sur ce site, j'ai pu réaliser et surtout revoir mes conversions dans mes codes.

Bonne continuation
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
cOOL
Messages postés
367
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010

En commençant par la droite plutot que par la gauche je pense que c'est plus simple non ?
En réutilisant tes noms de variables cela donnerait ceci :

Function ConvertirB2To10(ChiffreBinaire As string)

For i = 0 To Len(ChiffreBinaire ) - 1
ConvertirB2To10 = ConvertirB2To10 + Val(Mid(ChiffreBinaire , Len ChiffreBinaire ) - i, 1)) * 2 ^ i
Next i

Ce qui revient à la même chose ... mais en 3 lignes !!! :)
Messages postés
2
Date d'inscription
samedi 4 mai 2002
Statut
Membre
Dernière intervention
4 mai 2002

Précision cette version est pour un mot de 30bits

voici la version qui gère toutes les tailles de mot jusqu'à overflow du type de variable Long

Function ConvertisseurBinToDec(ChiffreBinaire As String) As Long

Dim Longueur As Integer
Dim i As Integer

Longueur = (Len(ChiffreBinaire) - 1)

For i = Longueur To 0 Step -1
ConvertisseurBinToDec = ConvertisseurBinToDec + (CInt(Right(ChiffreBinaire, 1)) * 2 ^ (Longueur - i))
ChiffreBinaire = Left(ChiffreBinaire, i)
Next i

End Function

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.