Fonction Decimal to Binary [Résolu]

Signaler
Messages postés
106
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
8 mai 2020
-
Messages postés
2248
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
24 octobre 2020
-
Bonjour à toutes et tous,

Je ne parviens pas à trouver une fonction pour convertir un nombre décimal en binaire....
J'ai essayé plusieurs chose dont celle ci :
https://www.youtube.com/watch?v=mWn4WYLUmSk

mais je n'ai toujours pas trouvé mon bonheur pour y parvenir.

Auriez-vous des éventuelles idées ?

2 réponses

Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Pour la programmation, les tutoriel vidéo sont la plupart du temps inutile.

Quel est ton code que tu as essayé ?
Messages postés
2248
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
24 octobre 2020
115
Bonsoir !
L'algorithme est une suite de division entière par 2 dont on prend le reste ( 0 ou 1)
On fait les divisions jusqu'à ce que le quotient soit = à 0
Un exemple : le chiffre 11

- 11 \ 2 = 5 reste 1
- 5 \ 2 = 2 reste 1
- 2 \ 2 = 1 reste 0
- 1 \ 2 = 0 reste 1 ( fin car le quotient = 0)

En prenant les restes à l'envers on obtient 11 décimal = 1011 binaire

Reste plus qu'à coder !

Et avec Convert.ToString c'est encore plus simple : https://msdn.microsoft.com/fr-fr/library/14kwkz77(v=vs.110).aspx

Messages postés
106
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
8 mai 2020

Effectivement voici sur ce que je suis partis en code et qui me convient très bien :
Dim i As Integer
i = TextBox1.Text
Label1.Text = Convert.ToString(i, 2).PadLeft(16, "0"c)
Messages postés
2248
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
24 octobre 2020
115 >
Messages postés
106
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
8 mai 2020

bonjour !
tu es en VB Net
Or dans ton bout de code précédent i est un Integer et TextBox1 Text est une String
VB Net est assez permissif ( on fait comme on veut et on mélange les torchons avec les serviettes )
Mais il serait plus judicieux d'écrire et de faire la conversion entre Integer et String

Dim i As Integer
i = Convert.ToInt32(TextBox1.Text)
Label1.Text = Convert.ToString(i, 2).PadLeft(16, "0"c)


Si tu avais mis dans ton projet Option Explicit et Option Strict sur On ( voir Propriétés du projet -> Compiler ) Visual Studio t'aurais signaler une erreur

Option Explicit t'oblige à déclarer toutes tes variables
Option Strict t'oblige à faire toutes les conversions par code et non implicitement !

Prends l'habitude de toujours mettre ces 2 paramètres su On quel que soit ton projet : cela t'évitera de chercher pourquoi Visual Studio te met une ererur ou une alerte pour de tels cas .

A++