L'essentiel du langage C

Définir le programme de transtypage

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Lancez-vous dans le programme de transtypage. Vous allez étudier une petite application qui permet d'illustrer le transtypage d'une variable.
06:36

Transcription

Je vais vous parler du transtypage, c'est-à-dire la possibilité de pouvoir passer d'un type à un autre à l'intérieur de votre programme. Pour cela, je fais défiler notre template, et à l'intérieur, donc de déclaration globale des variables, je vais déclarer plusieurs types de variables. Donc, du type unsigned char du type signed char char tout court, puisque signed, je vous rappelle, dans Code Blocks, est promu automatiquement, unsigned int, signed int, un float et un double. Donc, ces variables, je leur ai donné un nom et je les ai, de façon respective, donc assigné à des valeurs qui valent 200, -100, 500, -2000, 10.568 et 521.65896 La différence qu'il y a entre le float et le double, je ne pourrai pas vous l'expliquer dans ces vidéos donc parce que nous sommes dans les fondamentaux du C et cela demanderait beaucoup de temps mais dans un premier temps, dites-vous simplement que c'est quasiment la même chose. Cela sert à effectuer la représentation de nombre à virgule. Donc, j'ai une première partie de mon programme ou en fait, je vais l'exécuter tout de suite et nous allons voir un peu ce que ça nous donne au niveau de l'affichage. Je vais rechercher ma fenêtre, je me place juste en dessous, donc j'ai ma petite phrase d'introduction où j'ai laissé un espace supplémentaire. Donc, je rappelle les valeurs. Donc, c'est un unsigned char pour variable_1 Donc forcément ici, je mets %u unsigned donc u Après, char variable_2, donc c'est un décimal, un entier, donc %d unsigned int donc unsigned donc %u Ainsi de suite, et notamment ici, arrivé à float, je fais %.2f pour n'avoir que 2 chiffres après la virgule et éviter d'avoir l'intégralité. Et si je mets %f, dans ce cas-là, j'ai une intégralité du nombre que j'ai rentré. Donc, justement, allons jeter un coup d'œil par rapport à ce que nous avons entré. Et là, nous voyons que forcément ici, la promotion au niveau du printf se fait avec 6 zéros derrière la virgule. Donc, nous retrouvons en fait notre zéro et ici, puisque nous avons tronqué à 2 chiffres après la virgule, et le compilateur, de lui-même, a arrondi au supérieur. Voilà, je peux arrêter ma partie du programme. Donc, pour maintenant, je vais voir un peu ce qui se passe à côté, donc Shift+Ctrl+C pour commenter. Et après, nous allons passer ici, on sélectionne et nous allons effectuer Shift+Ctrl+X. Voilà ! Donc là, nous allons faire de la conversion type, c'est-à-dire que nous allons passer de l'unsigned vers du signed C'est ce que je fais ici. variable_1 est bien du type unsigned, vous voyez ? Il s'est mis ici. Et je vais le caster de façon, ou transtyper, on dit "caster" souvent dans le jargon informatique, de façon à ce qu'ils deviennent du type signed. Même chose ici, je fais l'inverse, c'est-à-dire je suis sur du type signed et je veux passer sur du type unsigned. Alors, même chose sur le int, vous voyez unsigned et je veux le caster de façon à ce qu'il devienne signed ; et puis, je fais l'inverse ici, du type signed vers du unsigned. Et évidemment, puisque je vais caster, il faut que je puisse afficher de nouveau le nouveau type. C'est-à-dire que là, c'était du unsigned mais je vais avoir en sortie du signed donc je vais devoir mettre %d, et ici %u, %d, %u Il faut évidemment permuter au niveau de l'affichage sinon j'aurai quelque chose d'erronée. Et là, regardons un peu ce que ça nous donne. Comparé à nos valeurs d'origine, donc voyons un peu ce que ça nous donne. Donc, on fait la promotion. Eh bien, dans un sens, ça fonctionne et dans l'autre sens, vous voyez que ça ne fonctionne pas. Et là, on revient bien sur ce que nous avons dit la fois dernière, il y a un sens au niveau de la promotion. Donc, regardons juste très rapidement. Donc, si vous voulez passer d'un type unsigned à un type signed, visiblement il n'y a pas de problème. Par contre, l'inverse n'est pas vrai. Vous voyez que vous obtenez n'importe quoi. Et puis, il en va de même pour du type integer Donc voilà, faites très attention lorsque vous castez simplement des variables. Donc, je vais commenter et je vais passer à la toute dernière partie de mon programme qui clôturera cette vidéo. Shift+Ctrl+X pour décommenter. Là, je lance donc mon application et je regarde ce qui se passe. Là, j'ai un float. La nouvelle variable après calcul vaut -2 Alors, regardons un peu ce qui s'est passé ici. Donc, la variable vaut -2 donc nous avons fait une division et nous l'avons mis sous le format float. Alors, la division de quoi par quoi ? Je reprends ici variable_1 sur variable_2 variable_1 sur variable_2, donc ce qui nous fait bien 200 divisé par 100. Donc, ce qui nous fait -2, donc pas de souci. Et après, nous faisons un cast, donc d'un double vers un float et là, nous voyons qu'il n'y a aucun souci à ce sujet. Nous retrouvons la valeur que nous avons entrée au tout départ qui est ici, vous pouvez le constater par vous-mêmes, nous avons exactement la même chose. Donc là, le fait de caster du double, c'est-à-dire du chiffre à virgule à double précision avec du chiffre à virgule, simple précision qui est le float ne change pas le résultat de façon significative hormis si vous avez avez énormément de chiffres après la virgule.

L'essentiel du langage C

Comprenez les concepts de base du langage C. Développez de simples applications en mode console, afin de comprendre les rouages d’un des langages les plus utilisés au monde.

7h51 (98 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :12 janv. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !