Langage C : BCD vers ASCII et inversement
Résolu/Fermé
A voir également:
- Langage C : BCD vers ASCII et inversement
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Delphi (langage) - Télécharger - Langages
1 réponse
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
26 nov. 2011 à 21:52
26 nov. 2011 à 21:52
Bonjour,
Si c'est sous forme de chaîne "01234567" vous pouvez récupérer chaque caractère par exemple le "0" et lui retirer la valeur '0' ascii pour mettre en binaire le chiffre,
char *chaine="01234567",c;
c=chaine[0]-'0'; // ici c récupère la valeur 0 en binaire du premier caractère de la chaine
Ensuite vous pouvez les injecter dans un char ou plus précisément en utilisant le type uint8_t pour du 8bits
exemple :
#include <stdio.h>
#include <stdint.h>
uint8_t f(int a,int b)
{
uint8_t x=0;
x=a<<4; //x fait 8bits donc on le décale de 4bits pour ensuite
x+=b; //lui ajouter b
return x; // retourne les 8bits qui contient nos deux valeurs sur 4bits
}
int main(void)
{
uint8_t z=0;
z=f(4,1); //f "injecte" le chiffre 4 et 1 dans un uint8_t
printf("%#x",z); // affiche en hexa
return 0;
}
ça peut vous donner une idée ou deux
Si c'est sous forme de chaîne "01234567" vous pouvez récupérer chaque caractère par exemple le "0" et lui retirer la valeur '0' ascii pour mettre en binaire le chiffre,
char *chaine="01234567",c;
c=chaine[0]-'0'; // ici c récupère la valeur 0 en binaire du premier caractère de la chaine
Ensuite vous pouvez les injecter dans un char ou plus précisément en utilisant le type uint8_t pour du 8bits
exemple :
#include <stdio.h>
#include <stdint.h>
uint8_t f(int a,int b)
{
uint8_t x=0;
x=a<<4; //x fait 8bits donc on le décale de 4bits pour ensuite
x+=b; //lui ajouter b
return x; // retourne les 8bits qui contient nos deux valeurs sur 4bits
}
int main(void)
{
uint8_t z=0;
z=f(4,1); //f "injecte" le chiffre 4 et 1 dans un uint8_t
printf("%#x",z); // affiche en hexa
return 0;
}
ça peut vous donner une idée ou deux
26 nov. 2011 à 22:40
Merci beaucoup de m'avoir rep, grace a ton exemple, et en cherchant, j'ai réussi a trouvé, merci beaucoup ;)