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 :

Obtenir le plus grand entier !


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Points : 59
    Points
    59
    Par défaut Obtenir le plus grand entier !
    Bonjour tout le monde !

    Mon petit probleme du jour : obtenir le plus grand int.

    J'ai bien eu l'idée de faire max_int = 0x7FFFFFF, mais sur certains machines, les octets sont inversés.... comment je fais alors ?

    Est-ce qu'il y a un #define MAX_INTEGER qqpart ? Une autre idée ?

    Merci d'avance !
    "Dis oui à celui qui te dit non, et il te dira peut-être.", Gogoye - Les Proverbes à la Con

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
      int mon_entier;
     
      mon_entier = -1;
     
      printf( "%d \n", unsigned(mon_entier));  
      printf( "%x ", unsigned(mon_entier));

    Tu n'auras pas la plus grande valeur puisque l'entier est signé. Mais passer l'entier à -1 te permettra de connaitre la taille de l'entier qui est propre au type de processeur. Sachant 7F... signifie le bit de poid fort est à 1 et interprété comme étant une valeur négative.

    Sur intel (et les clown) les octets sont effectivement inversés, tu peux l'observé en regardant les registres du processeur. Le printf ne le mettra pas en évidence.
    Il y a un moyen de le mettre en évidence, si ça t'interesse...

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 51
    Points : 57
    Points
    57
    Par défaut
    effectivement, c'est définie quelque part:
    dans limits.h : INT_MAX

  4. #4
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Non, merci, c'est bon ;)

    Apres une simple recherche de "MAX" dans les includes, j'ai trouvé MAXINT.... ca a l'air pseudo portable (testé sous linux et solaris), donc je m'en satisferai...

    Merci quand meme !
    "Dis oui à celui qui te dit non, et il te dira peut-être.", Gogoye - Les Proverbes à la Con

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 01/07/2015, 18h24
  2. Obtenir le plus grand tableau croissant
    Par naoma dans le forum Débuter
    Réponses: 16
    Dernier message: 01/07/2009, 00h58
  3. Réponses: 8
    Dernier message: 14/01/2008, 23h05
  4. Plus grand entier ?
    Par rouliane dans le forum C++
    Réponses: 12
    Dernier message: 27/09/2007, 22h47
  5. Réponses: 5
    Dernier message: 29/07/2006, 01h35

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