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 :

Les très grands nombres en C : questions


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 140
    Par défaut Les très grands nombres en C : questions
    Bonjour,

    J'ai quelques questions concernant les très grands nombre en C :

    1) Comment afficher un nombre de type long long avec printf ? Je ne trouve pas la bonne spécification de format.

    2) Pourquoi l'opérande modulo % ne marche-t-il pas avec les nombres de type double ? J'ai testé et ça me met une erreur à la compilation.

    Merci.

  2. #2
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Citation Envoyé par Merillym
    1) Comment afficher un nombre de type long long avec printf ? Je ne trouve pas la bonne spécification de format.
    En utilisant le spécificateur de format %lld
    Citation Envoyé par Merillym
    2) Pourquoi l'opérande modulo % ne marche-t-il pas avec les nombres de type double ? J'ai testé et ça me met une erreur à la compilation.
    Les opérandes du % doivent être entières avec des réelles cela n'a aucun sens, le reste des divisions réel est toujours nul.

  3. #3
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    1) Pour afficher un long long il faut utiliser le formateur %lld
    2) Le modulo % ne fonctionne que sur des entiers. Pour utiliser le modulo sur des nombres flottants il faut utiliser la fonction fmod qui est dans la libraire math.h

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 140
    Par défaut
    Merci pour vos réponses.

    Donc en fait un nombre du type double ou float n'est pas forcément un entier. J'avais donc une mauvaise représentation des grands nombres entiers.

    Le type long long va jusqu'à quel ordre de grandeur ? En fait j'en ai besoin pour enregistrer des données de type REG_QWORD, codées sur 8 bytes, dans le registre.

    Il me semble qu'il y a un header, limits.h, pour manipuler les grands nombres, je me trompe ?

    Merci.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Attention, long long ne correspond pas à la notion de "grands entiers": C'est juste un entier de 64 bits (minimum), alors qu'un "grand entier" peut avoir une taille arbitraire.

    <limits.h> sert à obtenir des informations sur ces types, notamment les valeurs maximales et minimales supportées par l'implémentation courante; ces valeurs doivent être supérieures ou égales (en valeur absolue) à celles de la norme.
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 140
    Par défaut
    Attention, long long ne correspond pas à la notion de "grands entiers": C'est juste un entier de 64 bits (minimum), alors qu'un "grand entier" peut avoir une taille arbitraire.
    Oki, donc pour mon besoin, c'est bien le type long long dont j'ai besoin et ça marche nickel d'ailleurs. Merci.

    J'irai explorer limits.h afin de mieux appréhender les "grands nombres".

    Merci, sujet résolu.


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

Discussions similaires

  1. Manipulation de très grands nombres
    Par BernardT dans le forum Langage
    Réponses: 6
    Dernier message: 07/07/2006, 16h26
  2. Précision d'un très très grand nombre
    Par sniperseb dans le forum Langage
    Réponses: 6
    Dernier message: 05/04/2006, 19h38
  3. Réponses: 2
    Dernier message: 22/12/2005, 18h16
  4. Trés grand nombre
    Par rteuteu55 dans le forum C++Builder
    Réponses: 10
    Dernier message: 15/11/2005, 11h28
  5. Une unité pour gérer des très grands nombres
    Par M.Dlb dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2003, 12h07

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