L'essentiel du langage C

Exploiter les opérateurs à décalage de bits

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Il est temps de passer au programme d'application sur les opérateurs à décalage de bits. Vous allez voir comment procéder.
04:44

Transcription

Je vais utiliser le programme pour illustrer les opérateurs à décalage. Comme d'habitude, j'utilise le même template et nous allons initialiser des variables. Donc, d'abord, des variables de type unsigned char qui sont ici, respectivement initialisés à 0, 200 et 10 Donc, result_char, nombre_char1, nombre_char2, puis un float result_float que j'initialise à 0 et que je vais prendre pour habitude de mettre une virgule. Après tout, je l'ai fait ici donc je ne vois pas pourquoi je ne le ferai pas ici. Tout ça pour se rappeler qu'il est nécessaire de mettre toujours dans une division le ".0" soit au numérateur, soit au dénominateur pour avoir un résultat complet. Donc, ici, je ne fais pas grand-chose hormis rappeler les valeurs de nombre_char1 et nombre_char2 Je rappelle de type unsigned donc %u et j'effectue un décalage à droite de 3 Donc, de 3, ça veut dire de 2^3=8 Donc normalement, je divise nombre_char1 par 8 Puis, dans mon deuxième exemple, je prends nombre_char2 et je fais, cette fois-ci, un décalage à gauche de 1 donc soit une multiplication par 2^1=2 donc je divise par 2 Puis je vais faire result_float donc là, cette fois-ci, je me sers d'un flottant pour faire un décalage à droite de 2 donc de 2^2=4 de nombre_char2. nombre_char2, on rappelle, vaut 10 Donc normalement, ça devrait nous donner 2.5 D'ailleurs, on va tout faire pour On va faire result_float C'est bien un flottant. Je vais y mettre 2 chiffres après la virgule. On va éviter de se balader avec les 6 chiffres après la virgule et je vais simplement afficher result_float Allez, on y va. On est parti pour la compilation. Voyons un peu si je vous ai menti ou pas. On regarde. Ici, nous avons fait un décalage à droite de 3 crans Donc nous avons divisé par 8 200 divisé par 8 égal 25 On est bon. Je fais un décalage de 1 Ça revient à faire une multiplication par 2 puisque mon décalage se fait à gauche. 10 fois 2 égal 20 On est bon. Ici, result_float donc j'effectue sur nombre_char2 qui vaut 10 Un décalage de 2 donc je divise par 4 Ok, donc je dois trouver 2.5 Oups, 2.00 Ah, je vous ai peut-être menti là. Non, absolument pas. Alors là, il faut que je vous explique quelque chose, c'est que le décalage fonctionne pour des nombres entiers, et non pas des nombres à virgule. C'est-à-dire que le 2.5, le 5 est passé à la trappe. Simplement pourquoi ? Parce que nombre_char2, lui, est un entier et vous faites un décalage d'un entier. Et vous allez beau le mettre dans un result_float en disant je vais récupérer mon 05 parce que c'est un flottant donc tout va bien se passer. Eh bien non, absolument pas ! Vous l'avez perdu. Donc lorsque vous avez des décalages à droite ou à gauche à effectuer pour faire des multiplications et des divisions de façon rapide, assurez-vous avant tout que le résultat tombe sur un entier et non pas sur un flottant. Alors, chose qui va être encore plus criminelle. Et là, donc je vais sélectionner et je vais même décommenter mon bloc pour mettre en place ce résultat. Alors là, je vais carrément prendre un flottant et je vais essayer de le décaler à gauche de 2 Donc voyons un peu le résultat et là ah bah non. Non, ça ne fonctionne absolument pas. On regarde ici : error : invalid operands to binary Bah oui, c'est un flottant. Et le flottant, forcément, vous ne pouvez pas non plus effectuer de décalages. Bon, j'espère que j'ai été assez concis et assez clair sur les opérateurs à décalage et retenez bien que le décalage, donc multiplication et division, doit donner un résultat en entier.

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 !