IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

j'ai une petite question pour l'opérateur >>=


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2010
    Messages : 87
    Points : 62
    Points
    62
    Par défaut j'ai une petite question pour l'opérateur >>=
    boujour

    dans le cours que j'ai pour le l'angage C ils disent que ce opirateur ">>=" il décale les bits de la variable a droite et qu'il fait l'affictation en meme temps j'ai fais ce petit code pour voir qu'est que va se passe dans ma variable mais pas de bon resultat comme je comprend normalement si la variable i vaut 10000 aprés l'opirateur ">>" égale 1000 + 1 ça fait 9 pas 8 pour quoi mon programme affiche 8

    int main(void)
    {
    unsigned char i = 0x10;
    printf("%x \n",i);
    i >>= 0x01;
    printf("%x \n",i);
    return 0;
    }


  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    comme je comprend normalement si la variable i vaut 10000 aprés l'opirateur ">>" égale 1000 + 1 ça fait 9 pas 8 pour quoi mon programme affiche 8
    Je n'ai rien compris à ce que tu dis.
    Ta variable est de type "unsigned char", elle ne peut donc pas contenir la valeur de 10000 ; la valeur sera tronquée.

    Sinon, 0x10 fait 16 en décimal. Le décalage de tous les bits un cran à droite provoque une division par 2. Le résultat est donc bien 8.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2010
    Messages : 87
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par jeroman Voir le message
    Je n'ai rien compris à ce que tu dis.
    Ta variable est de type "unsigned char", elle ne peut donc pas contenir la valeur de 10000 ; la valeur sera tronquée.

    Sinon, 0x10 fait 16 en décimal. Le décalage de tous les bits un cran à droite provoque une division par 2. Le résultat est donc bien 8.
    merci c'est bon mon programme est bien et c'est moi qui n'est pas lire la suite de la page l'opirateur ">>=" est 10000>>1000 et l'opirateur = avec la valeur 0x01 c'est pas pour l'addition mais c'est pour le numbre de decalage donc le resultat 8 est bien juste

Discussions similaires

  1. une petite question pour creer un site
    Par lyam_3 dans le forum Débuter
    Réponses: 88
    Dernier message: 27/03/2008, 10h22
  2. Réponses: 16
    Dernier message: 05/08/2006, 11h07
  3. Petite question pour Backup
    Par chicken92000 dans le forum Administration
    Réponses: 2
    Dernier message: 16/09/2004, 16h10
  4. Une petite question
    Par Etienne1 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/08/2004, 16h19
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo