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

Windows Discussion :

short en C++ ?


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut short en C++ ?
    Bonjour, je voulais savoir à quoi peut bien servir le short en C++ car j'ai du mal à comprendre.
    De plus, comment peut on connaître la valeur max et min d'un short ? Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je commence par ta seconde question:
    • À la mode C: Include <climits>, utiliser SHORT_MAX ou SHRT_MAX, je ne sais plus.
    • À la mode C++, je crois qu'il faut taper dans la classe template std::numeric_limits<>, définie je-ne-sais-plus-où. Typiquement, tu te retrouves avec un code du genre std::numeric_limits<short>::max.

    Pour ta première question, je pense que de nos jours on ne s'en sert plus que pour la compatibilité: Fichiers, transmissions réseau, accès à bas niveau aux périphériques...
    Et aussi, pour des volumes de données importants (genre, une base de données de plusieurs millions d'entrées), utiliser deux octets au lieu de quatre quelque part, ça peut sans doute encore faire une différence. Et sur des systèmes embarqués, on n'a même plus besoin de gros volumes pour que ça commence à se voir.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut re
    Merci pour ta réponse. Pour être précis, l'exercice nous demande d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout <<"la taille court est :\t" << sizeof(short) << "octets.\n";
    Et grâce à cette ligne, on nous demande de faire plusieurs essais pour trouver la valeur max et min d'un short. Enfin, on nous demande une explication sur ces limites.
    Mais commment utiliser la ligne précédemment citée pour trouver la valeur max et min d'un short ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut j'ai oublié :
    Voici ce que j'ai écrit dans mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <iostream>
    int main()
    {
    std::cout<<"la taille court est :\t"<<sizeof(short)<<"octets.\n";
    system ("pause");
    return 0;
    }
    Lorsque je l'exécute, l'écran m'affiche la taille court est 2 octets.
    Mais d'où viennent ces 2octets ?
    De plus, je me suis renseigné sur le short et j'ai appris :

    Type C++ taille Valeurs
    Short int 2 octets De -32768 à 32767

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Très simple: À partir de la taille en octets d'un short, tu peux obtenir sa taille en bits. Ensuite, tu peux déduire du nombre de bits le nombre de valeurs possibles, et si tu supposes que les nombres sont signés et codés en complément à 2, tu peux déduire les valeurs minimales et maximale...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Très simple: À partir de la taille en octets d'un short, tu peux obtenir sa taille en bits. Ensuite, tu peux déduire du nombre de bits le nombre de valeurs possibles, et si tu supposes que les nombres sont signés et codés en complément à 2, tu peux déduire les valeurs minimales et maximale...
    Mais le prof ( dans l'exercice), ne nous demande pas de faire du calcul à la main comme tu viens de m'expliquer mais d'utiliser le programme en faisant plusieurs essais afin de trouver les valeurs min et max de short.
    Sinon, je serai tenté d'essayer ta manière pour définir les valeurs min et max d'un short mais je ne sais pût comment convertir des octets en bits, c'ets un peu flou pour moi

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    unsigned int deux_puissance(unsigned int x) { return (1 << x); }
     
    int nombre_de_bits_dans_un_octet = 8;
    int taille_en_octets = sizeof(short);
    int taille_en_bits = taille_en_octets * nombre_de_bits_dans_un_octet;
    int nombre_valeurs_possibles = deux_puissance(taille_en_bits);
    int valeur_min_non_signee = 0;
    int valeur_max_non_signee = deux_puissance(taille_en_bits) - 1;
    int valeur_min_signee_cmp2 = - deux_puissance(taille_en_bits-1);
    int valeur_max_signee_cmp2 = deux_puissance(taille_en_bits-1) - 1;

    Ce qui pour un short, donnera les intervalles [0; 65535] et [-32768; 32767].
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci encore de m'avoir aider, c'est très gentil... Bon, maintenant, je vais travailler

Discussions similaires

  1. Réponses: 19
    Dernier message: 28/04/2005, 15h36
  2. [String]Affichage Short -> Hexadécimal
    Par Higestromm dans le forum Général Java
    Réponses: 2
    Dernier message: 25/03/2005, 14h17
  3. [bit]Mettre un mot de 16 bits (string) en short
    Par -=Spoon=- dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 27/03/2004, 21h07
  4. short int et int
    Par gaut dans le forum C
    Réponses: 3
    Dernier message: 07/02/2004, 21h06
  5. Forcer jump short ou far
    Par Blustuff dans le forum Assembleur
    Réponses: 6
    Dernier message: 02/03/2003, 02h03

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