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 afficher un long long ?


Sujet :

C

  1. #1
    HRS
    HRS est déconnecté
    Membre chevronné
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Par défaut comment afficher un long long ?
    soit 1357603272247675=78163219 * 17368825

    ce long long se mémorise correctement puisqu'il peut subir des
    divisions correctes

    mais il ne s'affiche pas correctement (-1530279557)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <stdio.h>
    int main (void) {
        long long nb=1357603272247675LL;
        printf("%d %d\n",(int)(nb/78163219),(int)(nb/17368825));
        printf("%Ld\n",nb);
        printf("%lld\n",nb);
        getchar();
        return 0;
    }

  2. #2
    Membre éclairé
    Inscrit en
    Août 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 89
    Par défaut
    sur ma page de manuel, c'est indiqué que lld affiche un signé ou un non signé. Sur ma machine ton code fonctionne. Essaie avec %llu, ça devrait afficher le bon resultat tout le temps.

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Cela fonctionne parfaitement chez moi, ce qui est tout à fait logique et normal. (1357603272247675 < 2**63-1)
    Je parle du troisième printf bien sûr.

    Le deuxième printf (après correction) affiche effectivement -1530279557 mais c'est ça aussi normal, car 1357603272247675 % 2**32-1 > 2**31-1 (d'où la valeur négative)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/11/2008, 17h26
  2. Invite "DOS" : comment écrire les noms longs
    Par Floris dans le forum Windows Vista
    Réponses: 1
    Dernier message: 19/03/2008, 14h36
  3. Comment supprimer répertoire trop long ?
    Par Tueur_a_gage dans le forum Windows XP
    Réponses: 3
    Dernier message: 27/06/2006, 11h29
  4. [C#] Comment convertir un type long en DateTime ?
    Par guillaume16 dans le forum C#
    Réponses: 4
    Dernier message: 22/06/2006, 14h45

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