Fonction Decimal to Binary

Résolu
jerlo11
Messages postés
108
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
13 février 2022
- 12 sept. 2018 à 18:15
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
- 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 ?

2 réponses

NHenry
Messages postés
14926
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 mai 2022
162
12 sept. 2018 à 21:25
Pour la programmation, les tutoriel vidéo sont la plupart du temps inutile.

Quel est ton code que tu as essayé ?
0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
Modifié le 13 sept. 2018 à 04:20
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

0
jerlo11
Messages postés
108
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
13 février 2022

13 sept. 2018 à 08:27
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)
0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151 > jerlo11
Messages postés
108
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
13 février 2022

13 sept. 2018 à 13:17
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++
0