Home > Listati di programmi C > Supernumeri

SUPERNUMERI

Libreria di funzioni C per fare calcoli con numeri naturali formati da migliaia di cifre.

Ho usato algoritmi ingenui, quindi molto piu' lenti rispetto ad altre librerie in circolazione. Sto studiando i metodi per eseguire i calcoli con maggiore efficienza.

L'algoritmo per la divisione (metodo della scala) e' ben descritto in quest'opera di Sant'Alfonso Maria de' Liguori.

Per rappresentare un supernumero ho ideato una struct con due campi: n_cifre (unsigned int) contiene il numero di cifre che formano il supernumero; v_cifre[DIMENS] e' un vettore di char che contiene le cifre del supernumero, caricate in ordine inverso.

DIMENS e' fissato con la direttiva #define in supernum_lib.h; attualmente e' uguale a 10000.

Per ora, non ho implementato meccanismi per il controllo dell'overflow; quindi, se nel corso di un'operazione si ottiene un supernumero con piu' cifre di DIMENS, il programma va in crash.

Per compilare (con gcc): gcc -o operaz operaz.c supernum_lib.c


File supernum_lib.h

File supernum_lib.c

Esempio di programma per fare calcoli con supernumeri


Home


www.corradodamiano.it a cura di Corrado Damiano

posta@corradodamiano.it