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
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
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.
Merci pour ta réponse. Pour être précis, l'exercice nous demande d'utiliser :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part cout <<"la taille court est :\t" << sizeof(short) << "octets.\n";
Mais commment utiliser la ligne précédemment citée pour trouver la valeur max et min d'un short ?
Voici ce que j'ai écrit dans mon programme :
Lorsque je l'exécute, l'écran m'affiche la taille court est 2 octets.
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; }
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
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.
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
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.
Merci encore de m'avoir aider, c'est très gentil... Bon, maintenant, je vais travailler
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager