[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT][Lunghetto]: come avere numeri maggiori di 2^31 in C?



Carlo Agrusti wrote:

In un mio soft, ho necessita' di avere dei numeri (interi positivi) che
possano contenere numeri grandi piu grande di 2^31.

#include <stdio.h>

int main (int argc, char *argv[])
{
        unsigned int       i;
        unsigned long long num;

        for (i = 0; i < 65; i ++) {
                num = 1 << i;

qui devi fare un cast
                 num = (unsigned long long) 1 << i;

altrimenti devi indicare che 1 è di tipo long long
                 num = 1ULL << i;

                printf ("i = %i, 2^%i = %llu\n", i, i, num);
        }
        return 0;
}

con long long utilizzi interi a 64 bit o 8 byte

Su macchine a 64 bit dovrebbe essere disponibile con il gcc anche un tipo a 128 bit o 16 byte.

Se vuoi di più ci sono classi in C++ che permettono di superare questo limite e addirittura avere una precisione "arbitraria".

Ciao
Davide

--
Dizionari: http://linguistico.sourceforge.net/wiki
Conoscere il TC: http://www.no1984.org
Strumenti per l'ufficio: http://it.openoffice.org
Sistema operativo: http://www.it.debian.org
Browser: http://www.mozilla.org/products/firefox
Client di posta: http://www.mozilla.org/products/thunderbird
GNU/Linux User: 302090: http://counter.li.org
--
Non autorizzo la memorizzazione del mio indirizzo di posta a chi usa
outlook: non voglio essere invaso da spam



Reply to: