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
Version imprimable
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.
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: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:
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...
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:
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].
Merci encore de m'avoir aider, c'est très gentil... Bon, maintenant, je vais travailler :P