Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/01/2006, à 12:57

bronco0

conversion BCD en binaire naturel

Bonjours

je programme en c et je voudrais savoir comment on fait pour convertire du BCD en binaire naturel. Car je reçoit des trames via laison série d'une station météo et je les réenvoit par tcp, mais besoin de les convertir avant la transmission pour les stocker ensuite dans une base de données Mysql.

Merci d'avance.

#2 Le 31/01/2006, à 13:25

Corwin of Amber

Re : conversion BCD en binaire naturel

Salut, je te le dis tout de suite je ne sais pas programmer mais j'ai quelques notions d'autodidacte. Ton truc c'est peut-être un problème classique !.
Enfin, bon voilà mon idée (après avoir cherché ce qu'est le bcd)

Fais un masquage sur ta valeur codée en bcd. Fais la somme de chacunes de tes valeurs masquées.
Exemple on a :    0111 1000 0101 en bcd. c'est égal à 785 si je me goure pas !

-Tu applique les masques 1111 0000 0000 ; 0000 1111 0000 et 0000 0000 1111
-tu obtiens : 7, 8 et 5
-tu fais la somme : 7*10^2+8*10^1+5*10^0
-tu convertis en binaire

après pour mettre ça en c, euh... si tu as de la patience attends le semestre prochain, je prends une uv d'initiation à la programmtion !

Dernière modification par Corwin of Amber (Le 31/01/2006, à 13:30)

Hors ligne

#3 Le 31/01/2006, à 13:26

Corwin of Amber

Re : conversion BCD en binaire naturel

Je sens que ton post va quitter le plancher pour atterir dans la section programmation big_smile

Hors ligne

#4 Le 31/01/2006, à 14:02

YannTech

Re : conversion BCD en binaire naturel

Salut,


il faut faire comme corwin of Amber l'a dit. En C :
Je gère pour un octet suffira de passer la moulinette ...

char hi_bit,lw_bit;
hi_bit = 0xF0 & ta_chaine;
lw_bit = 0x0F & ta_chaine;
nbcd = hi_bit*10 + lw_bit;

@+Yann

ps:le masque pour hi_bit ne fonctionne pas zarbi :-/
ps2: pas moyen de mettre un décalage pour le *10 ?

Dernière modification par YannTech (Le 31/01/2006, à 14:22)

Hors ligne

#5 Le 31/01/2006, à 14:53

Corwin of Amber

Re : conversion BCD en binaire naturel

YannTech a écrit :

ps:le masque pour hi_bit ne fonctionne pas zarbi :-/
ps2: pas moyen de mettre un décalage pour le *10 ?

faut excuser la naiveté de ma question, mais ça ne coince pas au niveau de la conversion char vers décimal ?

Dernière modification par Corwin of Amber (Le 31/01/2006, à 14:54)

Hors ligne

#6 Le 31/01/2006, à 15:17

YannTech

Re : conversion BCD en binaire naturel

Effectivement, mais notre très chère ami (gcc) fait un cast implicite. Bien vu sinon ;-)

Dernière modification par YannTech (Le 31/01/2006, à 15:18)

Hors ligne