Fonction Decimal to Binary [Résolu]

Messages postés
97
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
7 février 2019
- - Dernière réponse : vb95
Messages postés
1946
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 octobre 2019
- 13 sept. 2018 à 13:17
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 ?
Afficher la suite 

2 réponses

Messages postés
14565
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
136
0
Merci
Pour la programmation, les tutoriel vidéo sont la plupart du temps inutile.

Quel est ton code que tu as essayé ?
Commenter la réponse de NHenry
Messages postés
1946
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 octobre 2019
68
0
Merci
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

jerlo11
Messages postés
97
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
7 février 2019
-
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)
vb95
Messages postés
1946
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 octobre 2019
68 > jerlo11
Messages postés
97
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
7 février 2019
-
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++
Commenter la réponse de vb95