Changes de cours. Il apprend un sacré paquet d'âneries à ne pas faire, en plus de montrer des exemples de code buggés et d'être obsolète (quelques recherches sur le forum t'en diront plus). Prends plutôt le tutoriel disponible sur Zeste de Savoir. Ou encore le cours de C++ de @gbdivers, même s'il est encore en écriture il ne contient pas ce genre de bavures (et si tu as des problèmes de compréhension sur une partie et que ce n'est pas à cause d'un manque d'étude du cours,tu peux poster ici). Si tu préfères un cours déjà complet, tourne toi vers le C++ Primer de Lippman dans sa dernière édition (en anglais), il sera un poil moins à jour mais c'est un bon cours.
Concernant ton problème, si tu debutes, pas la peine de passer à un truc comme GMP, c'est au delà de ce que tu sais manipuler. Pour comprendre ce qui se passe, renseigne toi sur la représentation binaire des nombres et la technique du complément à deux.
Un simple exemple, si j'essaye de diviser 9531370722 par 10, j'obtiens 94143613...
Quelqu'un sait à quoi c'est dû? Et ce que je peux faire pour que l'opération se passe correctement?
Les nombres entiers, souvent, sont codés sur 4 octets, donc sont compris entre -2.147.483.648 et 2.147.483.647. Si un nombre dépasse la valeur maximale, genre on veut calculer 2.147.483.647 + 1, il me semble qu'il repasse à -2.147.483.648. Du coup, le nombre 9.531.370.722 vaut en réalité 9.531.370.722 modulo 2^31 (ou 2^32 ? ça donne le même résultat) c'est-à-dire 941.436.130. Quand on divise ce nombre par 10, on obtient donc 94.143.613. Pile poil !
Pour que l'opération se passe correctement, il faut utiliser des entiers longs (je ne sais pas si ça existe en C++, j'espère que oui vu qu'en C ça existe).
Merci pour vos réponses. je vais donc approfondir mes connaissances avant de tenter cette opération.
Opérations mathématiques sur des gros nombres
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C