Écrire des nombres en binaire !

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 975 fois - Téléchargée 39 fois

Contenu du snippet

Beaucoup de personnes me demandent comment écrire des nombres en binaires.
C'est simple et c'est quand même essentiel de connaître cette base en prog.

Le système binaire fait appel à des quantités représentant soit 1, soit le nombre 2, soit les puissances de 2 (4, 8 etc... comme 2^0 2^1 2^2 Etc..)
Ex: 1 2 4 8 16 32 64 128 256 512 1024 2048 4096
En bref pensez aux barres de mémoires vives :P

Pour réaliser le chiffre 3
nous devons tout simplement faire ceci
2^1 2^0 ce qui se traduit par 2 + 1 = 3
1 1 Nous écrivons donc 11 pour signifier que les valeurs 2^1 et 2^0 sont présentes dans le nombre 3.
Voilà c'est aussi simple que ça !
Voyons maintenant le chiffre 29
16 8 4 2 1
1 1 1 0 1
N'oubliez pas !!! Nous indiquons le chiffres 0 sous la valeur de 2 car le 2 est absent dans le chiffre 29 sous la forme binaire

En bref:
5: 101
4: 100

Voilà maintenant allez voir du monde et montrez leur que vous êtes capables d'écrire des nombres en binaire :P !

Source / Exemple :


'Pour convertir un nombre décimal positif en binaire:

Public Function Nbin(Ndec)
    Dim N, Reste
    N = 0
    Reste = 0
    Nbin = ""

    Do Until Ndec = 0
        N = N + 1
        Reste = Ndec Mod 2 ^ N
        Nbin = IIf(Reste = 2 ^ (N - 1), "1", "0") & Nbin
        Ndec = Ndec - Reste
    Loop
End Function

A voir également

Ajouter un commentaire

Commentaires

cs_max12
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014
-
L'idée est très bonne :D, Mais sa serais bien d'avoir un code
Nektanebos
Messages postés
62
Date d'inscription
mercredi 4 décembre 2002
Statut
Membre
Dernière intervention
27 avril 2003
-
Public Function bin(Number) As String
'Limité à long
If Abs(Number) > 1 Then
binaire = bin(Number 2) & CStr(Number Mod 2)
Else
binaire = CStr(Number)
End If
bin = binaire
End Function
Nektanebos
Messages postés
62
Date d'inscription
mercredi 4 décembre 2002
Statut
Membre
Dernière intervention
27 avril 2003
-
chiffre = Text1.Text
bi = 0
expo = 0
For i = Len(chiffre) To 1 Step -1
' pour i = dernié caractère jusque 1
If Val(Mid$(chiffre, i, 1)) > 1 Or Val(Mid$(chiffre, i, 1)) < 0 Then
'test si c'est bien du binaire
If MsgBox("La valeur " & Mid$(chiffre, i, 1) & " n'est pas du binaire", vbCritical + vbOKOnly, "Erreur") Then
Text2.Text = ""
Exit Sub
End If
End If
bi = bi + (Val(Mid$(chiffre, i, 1)) * (2 ^ expo)) ' fois base expensant en le rang
expo = expo + 1
'on incrémente le rang
Next i
Text2 = bi
End Sub
cs_legamer
Messages postés
68
Date d'inscription
mercredi 14 août 2002
Statut
Membre
Dernière intervention
8 août 2003
-
Merci les gars, j'ai cherché cette fonction pendant des heures et je n'y arrivai guerre.
Quelqu'un serait faire l'inverse ?
ATH|500|
Messages postés
155
Date d'inscription
mardi 7 août 2001
Statut
Membre
Dernière intervention
30 janvier 2008
-
merci pour le code nektanebos

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.