Nombre en binaire

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 866 fois - Téléchargée 37 fois

Contenu du snippet

Source classique. Transforme un nombre INTEGER LONG ou CURRENCY en binaire et permet d'obtenir une chaine de bits sur X bits.

Source / Exemple :


Function Num_Bin(ByVal nombre As Currency, Nombre_de_Bits As Integer) As String

Dim binaire As String, z As Currency, x As Currency
binaire = ""
z = 0
x = 0

Do Until nombre < 1
x = nombre - (Int(nombre / 2) * 2)
nombre = Fix(nombre / 2)
binaire = CStr(x) + binaire
Loop

If Nombre_de_Bits > Len(binaire) Then
binaire = String(Nombre_de_Bits - Len(binaire), Chr(48)) + binaire
End If

Num_Bin = binaire
End Function

Conclusion :


Pas de bug connu. Cette source fonctionne parfaitement.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
Ce que j'ai proposé n'est pas NET !
C'est du BASIC basique
Messages postés
8
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
3 avril 2005

Pour tout le monde

Je vous rapelle aimablement que je suis un programmeur vachement fauché et que je posséde VB5 Pro et c'est déja pas mal !

C'est vrai que de posséder un VB .NET doit être trés certainement plus facile à utiliser qu'un VB5 Pro. Mais voilà la vie est ce qu'elle est ! tout le monde n'est pas comme moi au RMI.
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
.... encore plus court en mettant :

Do While dec > 0 à la place de Do

et en supprimant le If dec = 0 Then Exit Do

Quant au passage dans l'autre sens,

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
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
... la division entière () <= un antislash dans la parenthèse
dec = dec 2 <= un antislash entre 'dec' et '2'

Les antislashes ne passent pas ...
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
Bonjour
Un peu plus court en utilisant la division entière (), le modulo (Mod) et une fonction logique (And) :

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
Afficher les 6 commentaires

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.