Prog binaire sur windev
boboange
Messages postés
4
Statut
Membre
-
Art60 -
Art60 -
Bonjour,j suis bobo j veus ecrit un prog sur winndev qui permet de convertir un nombre decimal en binaire.
j'ai ecrit le code et le voici
n est un numérique
b est un numérique=2
i est un numérique
c est un numérique
n=a1
c=n/b
i=n modulo b
TANTQUE n <> 0
c=n/b
i= n modulo b
FIN
a2=i
mon probleme est que j ne sait pas concatene deux chaines numerique.
si vs pouvez m'aidez .
j'ai ecrit le code et le voici
n est un numérique
b est un numérique=2
i est un numérique
c est un numérique
n=a1
c=n/b
i=n modulo b
TANTQUE n <> 0
c=n/b
i= n modulo b
FIN
a2=i
mon probleme est que j ne sait pas concatene deux chaines numerique.
si vs pouvez m'aidez .
A voir également:
- Prog binaire sur windev
- Binaire - Guide
- Robot prog - Télécharger - Édition & Programmation
- Editeur binaire - Télécharger - Édition & Programmation
- Alphabet binaire ✓ - Forum Programmation
- Acam windev ✓ - Forum Windev
2 réponses
Bonjour,
Pour convertir une valeur en une chaine la représentant dans une base quelconque est très simple.
Rappel, pour convertir en hexadécimal, il suffit d'utiliser la formule suivante :
sChaine = NumériqueVersChaine(nValeur,"04X") // 04X signifie avoir exactement 4 chiffres hexadécimaux
Pour les autres bases, dont le binaire, on peut utiliser la petite fonction suivante :
FONCTION NumériqueVersBase(nValeur,nBase,nChiffres=0) // nChiffres permet de spécifier le nombre de chiffres
// Exemple : sChaine = NumériqueVersBase(25,2,8) // Affecte "00011001" à sChaine (binaire)
// Exemple : sChaine = NumériqueVersBase(255,8) // Affecte "377" à sChaine (octal)
nReste est un entier
nNombre est un entier = nValeur
sResultat est une chaine
BOUCLE
nReste = nNombre modulo nBase // Calcul du chiffre de droite
sResultat = nReste + sResultat // Additionner un nombre à une chaine conduit à une concaténation de chaines
nNombre = (nNombre - nReste) / nBase // calcul des prochains chiffres (à gauche)
SI nNombre<=0 ALORS SORTIR // Sortir lorsqu'il n'y a plus rien à faire
FIN
SI nChiffres>0 alors // Si l'utilisateur a demandé à formater le résultat sur un nombre précis de positions
sResultat = Droite(Repète("0",nChiffres)+sResultat, nChiffres) // Compléter avec des zéros à gauche
FIN
RENVOYER sResultat
Tu me diras si ça te convient.
Pour convertir une valeur en une chaine la représentant dans une base quelconque est très simple.
Rappel, pour convertir en hexadécimal, il suffit d'utiliser la formule suivante :
sChaine = NumériqueVersChaine(nValeur,"04X") // 04X signifie avoir exactement 4 chiffres hexadécimaux
Pour les autres bases, dont le binaire, on peut utiliser la petite fonction suivante :
FONCTION NumériqueVersBase(nValeur,nBase,nChiffres=0) // nChiffres permet de spécifier le nombre de chiffres
// Exemple : sChaine = NumériqueVersBase(25,2,8) // Affecte "00011001" à sChaine (binaire)
// Exemple : sChaine = NumériqueVersBase(255,8) // Affecte "377" à sChaine (octal)
nReste est un entier
nNombre est un entier = nValeur
sResultat est une chaine
BOUCLE
nReste = nNombre modulo nBase // Calcul du chiffre de droite
sResultat = nReste + sResultat // Additionner un nombre à une chaine conduit à une concaténation de chaines
nNombre = (nNombre - nReste) / nBase // calcul des prochains chiffres (à gauche)
SI nNombre<=0 ALORS SORTIR // Sortir lorsqu'il n'y a plus rien à faire
FIN
SI nChiffres>0 alors // Si l'utilisateur a demandé à formater le résultat sur un nombre précis de positions
sResultat = Droite(Repète("0",nChiffres)+sResultat, nChiffres) // Compléter avec des zéros à gauche
FIN
RENVOYER sResultat
Tu me diras si ça te convient.