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: