Décalage

Résolu
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

  1. Contributeur
    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
    1. Contributeur
      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
      1. Contributeur
        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
    2. 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
      1. Contributeur
        peux-tu alors marquer la discussion comme résolue?
        0
      2. Contributeur
        @yg_beJe 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