Langage C - Besoin d'octets !!
SeKoYa
Messages postés
152
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
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
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:
- Langage C - Besoin d'octets !!
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
6 réponses
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
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
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
Merci pour vos réponses rapides en tout cas.
SeKoYa
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 ??
Autrement, ne connaîterai-tu pas un moyen de créer une variable d'une taille que je pourrais définir moi-même ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
Merci pour vos réponses rapides.
PS : fiddy, je vous ai envoyé mon code en mp. Merci d'y jeter un coup d'oeil.
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.
Je n'ai pas vu d'exemple d'utilisation, mais tu devrais pouvoir t'en sortir par lecture du code.
Sympa ton lien, mais il n'y a pas la réponse à son problème ^^.