Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C] - Numero lunghissimo!

    Ciao a tutti,
    sto scrivendo un programma che ho bisogno che arrivi con un numero intero fino a circa 2 quadrilioni (2'000'000'000'000'000'000 dovrebbe essere così )
    Ovviamente con normali int, long, unsigned long non ci arrivo, però ho visto sul file "limits.h" (sotto /usr/include per i pinguiniani) queste righe:
    codice:
    /* Maximum value an `unsigned long int' can hold.  (Minimum is 0.)  */
    #  if __WORDSIZE == 64
    #   define ULONG_MAX	18446744073709551615UL
    #  else
    #   define ULONG_MAX	4294967295UL
    #  endif
    
    #  ifdef __USE_ISOC99
    Ora, quei 18 quadrilioni mi andrebbero benissimo, però nn sono ancora riuscito ad usarli.
    Nel codice del programma ho inserito
    codice:
    #define __WORDSIZE == 64
    però nn è bastato. Qualcuno sa darmi qualche dritta?
    Grazie a tutti!

  2. #2

    Re: [C] - Numero lunghissimo!

    Originariamente inviato da MircoMick
    codice:
    #define __WORDSIZE == 64
    mi è caduto l'occhio su questo, non so se dipende da ciò
    codice:
    #define __WORDSIZE 64

  3. #3
    Cacchio! Hai molto ragione!
    Che pistola che sono. Grazie mille, ora provo a sistemarlo e tra qualche ora ti dico

  4. #4
    Utente di HTML.it L'avatar di LexLex
    Registrato dal
    May 2008
    Messaggi
    56
    potresti anche utilizzare:

    unsigned long long int tuavar;

    non so quanto è portabile :rollo:
    il codice di escape sempre se non erro è %llu oppure %ull uno dei due,

    verifica così..

    codice:
    unsigned long long int tuavar = 0; 
    printf("%llu",tuavar-1);
    "Dai Diamanti non nasce niente, dal letame nascono i fiori.. " F.De Andrè

  5. #5
    Ok, farò delle prove, grazie a tutti.

    FUNZIONA!!!
    ho usato unsigned long long e va. Grazie!

  6. #6
    Se fosse necessario utilizzare valori che eccedano i limiti definiti in limits.h, è possibile implementare per conto proprio un tipo "BigInt":

    http://www.guidealgoritmi.it/ShowArticle.aspx?ID=8


  7. #7
    Senza andarselo ad implementare, librerie come GMP sono molto valide e ben fornite:

    http://gmplib.org/
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  8. #8
    Originariamente inviato da GreyFox86
    Senza andarselo ad implementare, librerie come GMP sono molto valide e ben fornite:

    http://gmplib.org/
    GMP è un'ottima libreria; su questo non c'è alcun dubbio. Tuttavia, è un po' pesante se, per esempio, devo semplicemente calcolare il fattoriale di 100 o il 100° numero di Fibonacci; non trovi?

    Ciao

  9. #9
    Beh in effetti può essere un po' troppo grossa se si hanno esigenze limitate, ma penso che possa valere comunque la pena. E' solo qualche mega, e si può avere l'occasione di provare e conoscere, anche se superficialmente, una libreria molto potente che può ritornare utile in futuro.
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.