Décalage

Résolu
bonuxdu13 -  
[Dal] Messages postés 6373 Statut Contributeur -
Bonjour, mon cours indique les opérateurs de décalage peuvent engendrer des modifications concernant la taille de la variable résultat. Je veux bien des exemples de ceci.
si je décale à gauche, les bits à un finiront par etre perdus/tronqués. Je ne vois pas de dépassement de capacité possible sur le type de la variable. Seulement un résultat faux ou indéfini possible. Si je décale à droite les valeurs stockées sont plus petites, mais bon le type de la variable ne change pas, c'est possible puisqu'on peut bien coder une valeur inférieure à 256 (pour du non signé par exemple) dans un entier long si on en a envie. Mais bon je pense que le terme "taille" de la variable de mon cours fait référence à celle du type de celle ci, fixe. Cette phrase est un non sens pour moi. Pouvez vous m'eclairer?

3 réponses

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
bonjour, il me semble que le type du résultat d'une operation est fixe, à fortiori si le résultat est enregistré dans une variable.
si tu nous donnes plus de contexte, nous y trouverons peut-être un sens.
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
Salut bonuxdu13,

Le terme "taille" fait référence à celle du type, oui, mais cela pourrait s'interpréter de la façon suivante :

En cas de décalage à gauche, pour éviter d'obtenir un résultat "faux" (non tronqué) de l'opération, il est nécessaire d'affecter préalablement le contenu d'une variable d'un certain type à un type semblable de plus grande taille.

Evidemment, cela ne se fait pas tout seul, c'est un point d'attention requis du programmeur.

Dal
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
bonjour Dal, je pense que tu as très bien interprété:
"en cas d'utilisation des opérateurs de décalage, il peut être utile d'utiliser un type de plus grande taille pour la variable résultat"
0
bonuxdu13
 
oui Dal je pense aussi que tu as compris le sens de cette phrase en effet. Je ne l'avais pas envisagé comme celà, tout simplement. Merci!
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
peux-tu alors marquer la discussion comme résolue?
0
[Dal] Messages postés 6373 Statut Contributeur 1 106 > yg_be Messages postés 24281 Statut Contributeur
 
Je pense qu'il ne peux pas le faire car bonuxdu13 n'a pas créé de compte sur CCM.

Je l'ai fait pour lui.
0