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 :

compréhension d'une ligne de code


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 49
    Points : 41
    Points
    41
    Par défaut compréhension d'une ligne de code
    Bonjour,

    Je suis très débutant en C++.
    Je tentais de comprendre une ligne de programmation de C++ que j'ai trouvé dans une source...
    Est-ce que quelqu'un pourrait m'aider à comprendre cette ligne :
    _int64 a_b ((static_cast<_int64> (a) << 32) + b);
    si je comprends bien on déclare une variable a_b comme étant une integer en 64 bit...
    Mais j'avoue que j'ai du mal à comprendre la suite...
    Merci de votre aide.

    Magicsmacks

  2. #2
    Membre éprouvé
    Avatar de mitkl
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 364
    Points : 1 081
    Points
    1 081
    Par défaut
    Ca commence plutôt bien, il y a bien une variable a_b de type _int64 et celle-ci est égal à a qu'on cast en _int64 auquel on effectue un décalage de bits vers la gauche et qu'on additionne à b.

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 629
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Effectivement, la variable a_b est un entier codé sur 64 bits (en gros, l'équivalent d'un long long).
    Ce qui suit ( static_cast<int_64>(quelque chose) ) permet de convertir le (quelque chose) en un entier 64 bits (le quelque chose en question étant la variable a).

    La suite ( << 32) est un décalage de bits, c'est à dire que l'on décale toutes les valeurs de 32 bits (ce qui revient à faire fois 4294967296).

    Enfin, on ajoute la valeur de b au résultat.

    Au final, la variable a_b correspond à la conversion en entier 64 bits de (a *4294967296) +b

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 67
    Points
    67
    Par défaut
    Grosso merdo, en mémoire ça donne ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    +-------------------------------------------------------------------+
    | +------------------------------+ +------------------------------+ |
    | |         a (32 bits)          | |         b (32 bits)          | |
    | +------------------------------+ +------------------------------+ |
    |                          a_b (64 bits)                            |
    +-------------------------------------------------------------------+

  5. #5
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 49
    Points : 41
    Points
    41
    Par défaut
    Merci à tous c'est super clair...
    Merci pour tout.

    Magicsmacks

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Compréhension d'une ligne de code
    Par Carb0 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/11/2008, 10h23
  2. Petit problème de compréhension d'une ligne de code
    Par totoc1001 dans le forum Images
    Réponses: 3
    Dernier message: 12/03/2007, 21h44
  3. [VB2005] conversion d'une ligne de code de C# > vers VB2005
    Par DonJR dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/07/2006, 23h08
  4. [Tableaux] Explication d'une ligne de code
    Par eXiaNazaire dans le forum Langage
    Réponses: 3
    Dernier message: 30/03/2006, 13h09
  5. PB sur une ligne de code
    Par romrai dans le forum Access
    Réponses: 2
    Dernier message: 22/02/2006, 11h27

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