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 :

Comment représenter cet entier ?


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut Comment représenter cet entier ?
    Voilà, j'aimerais pouvoir représenter cet entier sur ma machine :
    13506641086599522334910321627880596993888147560566702752448514385152651060 48595338339402871505719094417982072821644715517736804197039641917430464965
    8927425623341020864383202410372958725762358509643110564073501508187510676
    594629205563685529475213500852879416377328533906109750544334999811150056977236890927563
    Il y aurait-il un moyen, avec la libraire limits.h, ou autre ?
    Merci

  2. #2
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    avec gmp tu peux manipuler de très grands nombres

    explique ce que tu veux en faire de ton nombre, peut-être qu'il y a mieux

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    Je dois garder ce nombre tel quel, sans le modifier.
    Il n'y a pas de type adapté en C ?

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Hi,
    Citation Envoyé par Superne0 Voir le message
    Je dois garder ce nombre tel quel, sans le modifier.
    Il n'y a pas de type adapté en C ?
    Non, il faut une bibliothèque spécialisée.

    Cependant, si c'est juste pour le garder, une bonne vieille chaine de caractère suffira (ce qui, bien entendu suppose que c'est vraiment seulement pour le garder, sans avoir à l'utiliser en tant qu'entier, valeur numérique ).
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    Je vais voir ça avec GMP ...
    C'est bien une librairie pour le C, c'est ça ?

  6. #6
    Membre actif Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Points : 245
    Points
    245
    Par défaut
    C'est vrai que pour le coup, si tu fais des calculs avec ce nombre, tu as interet à ne pas utiliser un type de base...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    je n'arrive pas à compiler, en utilisant le type mpz_t ...

  8. #8
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par Superne0 Voir le message
    je n'arrive pas à compiler, en utilisant le type mpz_t ...
    tu as bien inclus le .h dans lequel il est définit ?
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    oui ou, ainsi que les gmp_ devant les printf ...

  10. #10
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par Superne0 Voir le message
    oui ou, ainsi que les gmp_ devant les printf ...
    ???

    En fait c'est combien d'octet qu'il faut pour stocker ton nombre tu le sais ?
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  11. #11
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Avec un petit morceau de code on pourrait t'aider (enfin personnellement je ne connais pas cette lib, si s'en est une [þas le temps de tout relire] )

    Bonne chance avec tes nombres

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par hegros Voir le message
    ???

    En fait c'est combien d'octet qu'il faut pour stocker ton nombre tu le sais ?
    Quel est le moyen pour le savoir ?

  13. #13
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    je ne sais pas trop avec des logarithmes népériens peut-être.

    J'essaie avec logarithme népérien, quelqu'un apportera peut-être son avis (cela donne le nombre de bit nécessaire)

    2^n = ton_chiffre

    n * ln(2) = ln(ton_chiffre)

    n = ln(ton_chiffre)/ln(2)
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    Apparamment même Mathematica ne fait pas le calcul ...

  15. #15
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par Superne0 Voir le message
    Apparamment même Mathematica ne fait pas le calcul ...
    Beh ma calculette ne doit pas prendre autant de chiffre non (pourtant scientifique )

    Ce n'est pas trop indiscret de te demander à quoi corresponds cette donnée ou pourquoi tu t'en sers car mise à pars comme valeur pour la vitesse de l'explosion d'une étoile près d'un trou noir je ne vois pas
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  16. #16
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Fio,
    Citation Envoyé par hegros Voir le message
    Beh ma calculette ne doit pas prendre autant de chiffre non (pourtant scientifique )

    Ce n'est pas trop indiscret de te demander à quoi corresponds cette donnée ou pourquoi tu t'en sers car mise à pars comme valeur pour la vitesse de l'explosion d'une étoile près d'un trou noir je ne vois pas
    Sans aller très loin : en cryptographie, en recherche de grands nombres premiers (nécessaires à certains algorithmes de cryptographie), en décomposition en nombre premiers de grands nombres, ... c'est très loin d'être exhaustif.
    Si les cons volaient, il ferait nuit à midi.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    J'aimerais étudier les restes sur ce nombre ... et j'arrive pas à trouver plus que ce que je j'ai pu lire sur la doc officielle

  18. #18
    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
    Ce nombre fait 308 chiffres, l'ordre de grandeur est donc 10^307, soit environ 10^(102*3)

    Ceci doit être plus ou moins voisin de 2^(102*10), donc aux alentours d'un millier de bits.

    En gros, le nombre doit donc être stockable dans un buffer de 128 octets, par exemple...
    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.

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    Sa manipulation dans l'environnement C n'est pas impossible si je comprends bien ... ?

  20. #20
    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
    Il n'existe aucune fonction standard pour manipuler les grands nombres. Donc, soit tu te fais tes propres fonctions de grands nombres en C, soit tu utilises une bibliothèque faite pour ça, comme GMP.
    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.

Discussions similaires

  1. Réponses: 10
    Dernier message: 23/02/2006, 11h10
  2. représentation binaire-->entier
    Par felicity dans le forum C
    Réponses: 6
    Dernier message: 17/01/2006, 20h57
  3. [C#] Comment convertir un entier en couleur ?
    Par L`artiste dans le forum C#
    Réponses: 3
    Dernier message: 08/01/2006, 20h52
  4. Comment arrondir à l'entier supérieur ?
    Par kuranes dans le forum Access
    Réponses: 3
    Dernier message: 29/11/2005, 17h42
  5. [Séquence] Comment représenter les cas/messages d'erreur ?
    Par joker34 dans le forum Autres Diagrammes
    Réponses: 4
    Dernier message: 27/07/2005, 04h44

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