Langage C - Besoin d'octets !!

Fermé
SeKoYa Messages postés 152 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 août 2010 - 5 avril 2009 à 12:17
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 5 avril 2009 à 14:39
Bonjour à tous,
Voici mon problème : je suis plutôt nouveau né dans l'univers de la programmation et j'essaye de faire un petit peu tout ce qu'il me passe par la tête pour m'entraîner. J'ai donc décidé de faire un programme en C où l'utilisateur entre un nombre qui est le degré de la suite de Fibonacci qui l'intéresse (par exemple, degré 5 et l'ordinateur affiche 8). Même si vous ne savez pas ce qu'est une suite de Fibonacci, là n'est pas l'important car mon problème est tout autre.
En effet, avec des degrés faibles, le programme fontctionne correctement mais lorsque j'utilise des hauts degrés, le nombre affiché est plus grand que ma variable de type long. Alors voici ma question : comment faire pour obtenir des nombres très grands ? Faut-il créer une variable d'un autre type ? Faut-il créer une varible manuellement et lui allouer de la mémoire de la même façon ? Si oui comment faire ...

Merci d'avance pour toutes vos réponses et bonne continuation à tous.

SeKoYa
A voir également:

6 réponses

HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 608
5 avril 2009 à 12:20
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
5 avril 2009 à 12:36
Salut,
Sympa ton lien, mais il n'y a pas la réponse à son problème ^^.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
5 avril 2009 à 12:39
Salut,
Tu peux utiliser le type unsigned long long si t'utilises la nouvelle norme du C (C99). Cela te permettra d'aller plus loin.
Si cela ne te suffit toujours pas, il va te falloir gérer les grands nombres en gérant les retenus etc. Ou alors tu peux utiliser une bibliothèque toute faite comme BIGNUM implémenté dans openssl.
Cdlt
0
SeKoYa Messages postés 152 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 août 2010 18
5 avril 2009 à 12:39
En effet, mon problème est le suivant : il me faut une variable plus grande que les variables par défaut, et si vous savez, merci de me dire comment en créer une d'une taille que je pourrais définir moi-même.

Merci pour vos réponses rapides en tout cas.

SeKoYa
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
5 avril 2009 à 12:40
Vu la date de ton envoi, je ne pense pas que t'as eu le temps de lire mon post #3 qui contient des éléments de réponses.
0
SeKoYa Messages postés 152 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 août 2010 18
5 avril 2009 à 12:44
Merci de ta réponse fiddy mais le unsigned long ne me suffit pas, pourrait-tu m'expliquer un peu plus en détail ton openssl car je ne vois pas du tout de quoi tu parles, de plus, je suis sous Code::Blocks cela change-t-il quelque chose ??
Autrement, ne connaîterai-tu pas un moyen de créer une variable d'une taille que je pourrais définir moi-même ??
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
5 avril 2009 à 13:23
mais le unsigned long ne me suffit pas
J'ai pas dit unsigned long, mais unsigned long long ;-))
Essaie déjà avec ça avant de tourner avec une implémentation de BIGNUM car ça sera un peu plus dur sinon.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SeKoYa Messages postés 152 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 août 2010 18
5 avril 2009 à 13:37
Je m'étais mal exprimé mais j'avais bien mis unsigned long long dans mon programme et je ne peux plus afficher mon résultat à partir du degré 46, alors dites-moi comment faire pour atteindre les 4 prochains petits degrés... et les suivants aussi !!
Merci pour vos réponses rapides.
PS : fiddy, je vous ai envoyé mon code en mp. Merci d'y jeter un coup d'oeil.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
5 avril 2009 à 14:39
Tu peux par exemple utiliser ce code : https://www3.cs.stonybrook.edu/~skiena/392/programs/bignum.c
Je n'ai pas vu d'exemple d'utilisation, mais tu devrais pouvoir t'en sortir par lecture du code.
0