ENFIN UN EXEMPLE DE TRANSFORMATION BINAIRE -> DECIMAL : QUI FONCTIONNE!!!

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 28 sept. 2003 à 14:48
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015 - 30 sept. 2003 à 14:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/16734-enfin-un-exemple-de-transformation-binaire-decimal-qui-fonctionne

cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
30 sept. 2003 à 14:08
Je propose ça :
val("&b" & valeur)
qui renvoie la valeur convertie en integer
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
28 sept. 2003 à 20:52
Pour revenir à Binaire => Décimal, une fonction qui marche quelle que soit la longueur de la chaîne binaire (jusqu'à 48 bits ; au-delà, on dépasse la limite VB de 15 chiffres décimaux) :

Private Function bin_dec(bin As String) As Long
Dim i As Integer
For i = Len(bin) To 1 Step -1
    bin_dec = bin_dec + Mid(bin, i, 1) * 2 ^ (Len(bin) - i)
Next i
End Function
cs_TheHacker Messages postés 442 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 19 octobre 2005
28 sept. 2003 à 17:22
ouai c cool, pour des mots on peut aussi faire comme ca:

Select Case ConvertHextoBinVar
Case 0: bin = "0000"
Case 1: bin = "0001"
Case 2: bin = "0010"
Case 3: bin = "0011"
Case 4: bin = "0100"
Case 5: bin = "0101"
Case 6: bin = "0110"
Case 7: bin = "0111"
Case 8: bin = "1000"
Case 9: bin = "1001"
Case "A": bin = "1010"
Case "B": bin = "1011"
Case "C": bin = "1100"
Case "D": bin = "1101"
Case "E": bin = "1110"
Case "F": bin = "1111"
End Select
on découpe donc la chaine de caractere a transformer en hexa de 2 lettres et on les envois 2 par 2 dans une fonction par exemple

voila @+
Golog Messages postés 224 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 22 décembre 2009
28 sept. 2003 à 16:38
Pas mal , j'suis sur que sa pourra me servire plus tar.

Sinon , tu serais m'envoyé tes sources du projet de Voiture ?
sa m'interrese
golog123@hotmail.com
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 sept. 2003 à 14:48
Idéalement, il faudrait que la fonction ne soit pas limitative a une taille d'un octet pour le mot binaire :

Function BinToDec(Binaire As String) As Long
Dim Div As Long, X As Integer, Tmp As Long
Div = 2 ^ (Len(Binaire) - 1)
For X = 1 To Len(Binaire)
If Mid$(Binaire$, X, 1) "1" Then Tmp Tmp + Div
Div = Div / 2
Next
BinToDec = Tmp
End Function


Bonne source tout de même :-) Et Bonne continuation
Rejoignez-nous