[C] convertir un char en int et vice versa?
Fermé
boitaRytm
Messages postés
14
Date d'inscription
dimanche 7 janvier 2007
Statut
Membre
Dernière intervention
22 octobre 2008
-
7 janv. 2007 à 11:58
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 27 déc. 2014 à 21:34
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 27 déc. 2014 à 21:34
A voir également:
- Convertir char en int c
- Convertir un char en int en c - Meilleures réponses
- Convertir un char en int c - Meilleures réponses
- Convertir youtube en mp3 avec audacity - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Convertir heure en centième excel ✓ - Forum Excel
- Convertir wfp en mp4 - Forum Accessoires & objets connectés
- Convertir youtube en mp3 forum ✓ - Forum Logiciels
7 réponses
Sais-tu qu'il n'y a pas de typage fort en C ?
Cela veut dire que tu peux te servir d'une variable de type char comme si c'était un int :
c'est à dire que tu peux utiliser les opérateurs de comparaisons, arithmétique, logique.
Si par contre, tu as besoin de mixer operandes de type int avec d'autres de type int, convertit-les dans le type du résultat attendu.
Exemple:
{
int i;
resultat;
char c1,c2;
i=2;
c1=100;
c2=100;
resultat=(int) c1*(int) c2+i;
}
En effet, si la conversion n'est pas réalisée avant d'effectuer la *, le résultat intermédiaire est stocké dans une variable temporaire de type char et dans notre cas, ne suffit pas à stocker le résultat dans son intégralité (il faut 2 octets. Le type char tient sur 1 !!)
Le résultat intermédiaire est tronqué et la variable intermédiaire ne stocke que les bits les moins significatifs.
Le résultat final sera faux.
Bien sûr, le langage C ne le signale pas par défaut. Peut-être qu'une option de compilateur peut permettre de le signaler ou l'outil lint.
Je te conseille à ce propos d'utiliser lint, qui t'aidera à débugger tes programmes. C'est très formateur et t'évitera peut-être de t'user les yeux devant l'écran et les bouquins.
D'autres langages comme Ada, réalise une vérification systèmatique de la concordance des types dans les expressions et les affectations, à la compilation et controle les débordements à l'exécution.
Ceux qui ont développé en Ada, ont tous connu, l'exception Ada : Constraint error.
Donc, voilà, pour répondre à ta question :
pour convertir, un char en entier : (int) <operande char>.
De facon générale : (type) <operande>.
où type peut être : int, char, long, unsigned, ... et toute combinaison.
où operande peut être : constante, variable, expression.
Voilà, voilà, a+.
P.S: Amuse-toi bien.
Tu apprends le C pour faire quoi, si c'est indiscret ?
Cela veut dire que tu peux te servir d'une variable de type char comme si c'était un int :
c'est à dire que tu peux utiliser les opérateurs de comparaisons, arithmétique, logique.
Si par contre, tu as besoin de mixer operandes de type int avec d'autres de type int, convertit-les dans le type du résultat attendu.
Exemple:
{
int i;
resultat;
char c1,c2;
i=2;
c1=100;
c2=100;
resultat=(int) c1*(int) c2+i;
}
En effet, si la conversion n'est pas réalisée avant d'effectuer la *, le résultat intermédiaire est stocké dans une variable temporaire de type char et dans notre cas, ne suffit pas à stocker le résultat dans son intégralité (il faut 2 octets. Le type char tient sur 1 !!)
Le résultat intermédiaire est tronqué et la variable intermédiaire ne stocke que les bits les moins significatifs.
Le résultat final sera faux.
Bien sûr, le langage C ne le signale pas par défaut. Peut-être qu'une option de compilateur peut permettre de le signaler ou l'outil lint.
Je te conseille à ce propos d'utiliser lint, qui t'aidera à débugger tes programmes. C'est très formateur et t'évitera peut-être de t'user les yeux devant l'écran et les bouquins.
D'autres langages comme Ada, réalise une vérification systèmatique de la concordance des types dans les expressions et les affectations, à la compilation et controle les débordements à l'exécution.
Ceux qui ont développé en Ada, ont tous connu, l'exception Ada : Constraint error.
Donc, voilà, pour répondre à ta question :
pour convertir, un char en entier : (int) <operande char>.
De facon générale : (type) <operande>.
où type peut être : int, char, long, unsigned, ... et toute combinaison.
où operande peut être : constante, variable, expression.
Voilà, voilà, a+.
P.S: Amuse-toi bien.
Tu apprends le C pour faire quoi, si c'est indiscret ?
7 janv. 2007 à 13:16
Sinon, ça pourrait pas compiler.
sinon, une fois déclarée, laisser la ligne 3 telle quelle, n'a aucun effet sinon de forcer le compilateur à signaler que cette instruction n'a pas d'effet.