begin process at 2012 02 11 05:52:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

produit d'int quand depassement du 2^32.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

produit d'int quand depassement du 2^32.

samedi 26 novembre 2005 à 00:53:22 | produit d'int quand depassement du 2^32.

kaervas

Membre Club
Bonjour a tous,

Mon code, a un moment donne, fait le produit de deux int, j'aimerais faire une gestion d'erreur (soit un simple exit(0)) lorque le resultat de ce produit, que je dois mettre dans un autre int, depasse 2^32.

Le probleme que j'ai est que je ne peux stocker ce produit nulle part pour le comparer a la taille d'un int, puisque aucuns type ne peut le contenir (2milliard x 2milliard par exemple).

J'avais pense au passage d'int en chaine puis de produit de deux chaine, mais mon programme est court a la base, je ne vais pas rajouter une page juste pour gere une erreur!
Mais si quelqu'un a une autre solution...
Merci d'avance (:
samedi 26 novembre 2005 à 00:55:51 | Re : produit d'int quand depassement du 2^32.

vecchio56

Administrateur CodeS-SourceS
Tu as le type __in64
Sinon, tu peux coder en assembleur, le résultat est sur 64 bits (2 reg de 32 bits)
samedi 26 novembre 2005 à 01:01:34 | Re : produit d'int quand depassement du 2^32.

kaervas

Membre Club
Merci de ta reponse (rapide).

Je n'ai pas precise mais je ne peux faire ca qu'en C (etudiant..), et sans rajouter de lib specifique a moins de recoder ce qu'il faut..

Je me trompe peutetre mais ce type a l'air d'etre utilise seulement en C++?
Assembleur? Je ne connais pas du tout mais a priori on a le droit vu que le C le prend en charge, je crois, mais je n'y connais rien ...
samedi 26 novembre 2005 à 01:09:05 | Re : produit d'int quand depassement du 2^32.

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Si c'est pour les cours, je pense que l'assembleur n'est pas la solution attendue
Si tu as juste a détécter l'erreur, tu peux le faire simplement:
Tu veux vérifier que a*b<2^32, tu vérifies donc que a<2^32/b
samedi 26 novembre 2005 à 01:10:42 | Re : produit d'int quand depassement du 2^32.

Joky

Membre Club
Un DWORD c'est 32 bits non ?
32 bits -> 11111111111111111111111111111111
En décimal : 4 294 967 295
Je sais pas si ça te convient...

if(!Meilleur("Joky")) return ERREUR;

samedi 26 novembre 2005 à 01:13:44 | Re : produit d'int quand depassement du 2^32.

vecchio56

Administrateur CodeS-SourceS
Belle intervention Joky, mais je crois que t'a pas bien compris le problème.
Si tu fais une multiplication qui déborde, ca va donner un résultat, sans doute inférieur à 0xFFFFFFFF
samedi 26 novembre 2005 à 01:30:47 | Re : produit d'int quand depassement du 2^32.

kaervas

Membre Club

C'est logique vecchio56, je vais essayer ca!
Merci beaucoup pour ton aide.

samedi 26 novembre 2005 à 01:33:00 | Re : produit d'int quand depassement du 2^32.

Joky

Membre Club
Okay donc je réitère :)
Soit n un entier à p chiffres :)
Construisons alors un tableau de int qui contiendrons les entiers de rang p
En sachant que le nombre de chiffre dépendra de la longueur de la chaines :)
Faisons cela pour les 2 entier à multiplier !
Stockons les nouvelles valeurs dans un tableau
Trouver sa dimention
Si la dimension est trop grande, par exemple elle contient 12 chiffres, et bien erreur sinon pas erreur :)

if(!Meilleur("Joky")) return ERREUR;<

samedi 26 novembre 2005 à 01:36:27 | Re : produit d'int quand depassement du 2^32.

vecchio56

Administrateur CodeS-SourceS
Il faudra donc que tu recodes la multiplication?
Et je vois pas le lien avec ton premier message :)
samedi 26 novembre 2005 à 01:37:14 | Re : produit d'int quand depassement du 2^32.

kaervas

Membre Club
Interessant Joky, ca semble plus generique comme methode,
la premiere plus adapte pour mon cas (rapidite), mais je prends note de celle-ci, merci (:



1 2 3

Cette discussion est classée dans : int, erreur, produit, depassement, 2milliard


Répondre à ce message

Sujets en rapport avec ce message

Problemes de fonctions (niveau debutant) [ par zzzzzz ] en fait je veut faire un programme console dans le but de me familiariser avec les fonctions que je maitrise pas et que je veux apprendre. en francais Au secour ! [ par slashparof ] Au secour! Je ne comprend vraiment pas le problème visual studio me compile cette fonction correctement, mais mon programme cause une erreur quand j'a Mais Pkoi un erreur ?! [ par Orezza ] OrezzaBonjour voila encore une de mes sources Bidon, je le sais je debute mais pkoi mon compilateur indique une erreur je ne vois vraiment pas.je vous Casting to dialogproc [ par bobby03 ] Quand j'utilise les boites de dialogue j'ai cette erreur:Error: Leçon02.cpp(101,46):Cannot convert 'int (*)()' to 'void (*)(int)'Pour réparer cette e Erreur de compilation étonnante [ par aujeanfr ] Voici la fonction que je crée :Déclaration :public:int traitement_bmp(CBitmap accessoire, CString CheminImages, Erreur de débutant..je suppose [;)] [ par bthivent ] Bonjour !Voilà j'ai un petit problème, qui me mène dans un mauvais état, mais qd même pas au bord du suicide lol...j'ai une erreur dans mon code, en v tableaux multidimentionnels [ par vecchio56 ] j'ai une petite question à propos des tableaux multidimentionnels: comment doit on déclarer un argument formel pour un tableau de ce type dans une fon Comment forcer le RTS pour une liaison RS232 [ par ancat ] Bonjourje viens de faire un petit prog (grandement inspire de sources du site) mais je ne saisis pas trop le controle du RTS.Celui ci est-il traite pa Erreur wininet [ par alicvb ] Voilà le début de mon code (sous DEV C++ 4.9.9.0) :#include #include #include #include "shellapi.h"#include "wininet.h"//#pragma comment(lib, "Wininet Erreur [ par LordBob ] Salut a tous,voila je voudrait faire un truc, mais je n'y arrive pas. Alors plutot que de vous expliquez ce que c'est, je vous montre le code.#include


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,056 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales