begin process at 2010 02 09 22:25:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Vérifier si mon nombre est trop grand


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

Vérifier si mon nombre est trop grand

jeudi 13 février 2003 à 03:39:45 | Vérifier si mon nombre est trop grand

tweeder

Salut

Dans mon programme, je dois vérifier si le nombre entré dépasse la capacité d'un unsigned int.
De quelle facon puis-je m'y prendre ? Est-ce que je regarde si ma valeur est en desous de 4294967295 ?
Parce que quand je rentre une grande valeur plus grande que 4294967295, il semble que la valeur soit tronquée automatiquement a 4294967295 !?!?!
Merci de votre aide
jeudi 13 février 2003 à 05:28:57 | Re : Vérifier si mon nombre est trop grand

jonathanmcdougall

> Dans mon programme, je dois vérifier si le nombre entré dépasse la capacité d'un unsigned int.
> De quelle facon puis-je m'y prendre ? Est-ce que je regarde si ma valeur est en desous de 4294967295 ?
> Parce que quand je rentre une grande valeur plus grande que 4294967295, il semble que la valeur soit tronquée automatiquement a 4294967295 !?!?!


Impossible, ce n'est même pas spécifique à ton implémentation, c'est spécifique au *hardware*. Certains processeurs, les intel x86 entre autres, je crois, lance un certain signal que l'on peut attraper avec signal() (<signal.h>).

Les compilateurs ne doivent pas ni lancer d'exception ni faire quoi que ce soit lorsqu'un overflow arrive, il ne doivent que faire un 'wrap-around', c'est-à-dire la transformer en négatif.

De plus, les valeurs maximales sont, elles, définie par ton implémentation. Donc, le 'int' chez moi peut prendre 32 octets et 4 chez vous.

Bonne chance!

Jonathan Mcdougal
Montréal, Québec
mcdougalljonathan@hotmail.com
http://www.multimania.com/utopiasoftware
jeudi 13 février 2003 à 09:15:33 | Re : Vérifier si mon nombre est trop grand

BruNews

Administrateur CodeS-SourceS
Salut,
WIN32 a func GetDlgItemInt(...) qui sait dire si bon ou pas.
Serait pas difficilile d'ecrire une func pour controler si entree > 32 bits. Des que j'ai le temps j'en publie un petit prog demo. Essaie donc entre temps. Jette un oeil sur methode conversion AscciToBinary, je suis sur que tu comprendras comment effectuer le test.
ciao...

-------------------------------
Réponse au message :
-------------------------------

> Salut
>
> Dans mon programme, je dois vérifier si le nombre entré dépasse la capacité d'un unsigned int.
> De quelle facon puis-je m'y prendre ? Est-ce que je regarde si ma valeur est en desous de 4294967295 ?
> Parce que quand je rentre une grande valeur plus grande que 4294967295, il semble que la valeur soit tronquée automatiquement a 4294967295 !?!?!
> Merci de votre aide
jeudi 13 février 2003 à 11:09:39 | Re : Vérifier si mon nombre est trop grand

BruNews

Administrateur CodeS-SourceS
C'est bon je t'ai fait prog de test.
Va voir sources BruNews.
ciao...

-------------------------------
Réponse au message :
-------------------------------

> Salut,
> WIN32 a func GetDlgItemInt(...) qui sait dire si bon ou pas.
> Serait pas difficilile d'ecrire une func pour controler si entree > 32 bits. Des que j'ai le temps j'en publie un petit prog demo. Essaie donc entre temps. Jette un oeil sur methode conversion AscciToBinary, je suis sur que tu comprendras comment effectuer le test.
> ciao...
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut
> >
> > Dans mon programme, je dois vérifier si le nombre entré dépasse la capacité d'un unsigned int.
> > De quelle facon puis-je m'y prendre ? Est-ce que je regarde si ma valeur est en desous de 4294967295 ?
> > Parce que quand je rentre une grande valeur plus grande que 4294967295, il semble que la valeur soit tronquée automatiquement a 4294967295 !?!?!
> > Merci de votre aide
>
jeudi 13 février 2003 à 12:54:00 | Re : Vérifier si mon nombre est trop grand

vieuxLion

Cher Jonathan,
je suis curieux de savoir sur quel système tu travaille

en réponse à la question première,
- Si la saisie est faite via "cin",
essayez la petite astuce sur "cin" que j'ai récement posté
http://www.cppfrance.com/article.aspx?Val=1404
- si elle est faite dans un TextBox, alors c'est du texte et il suffit de contrôler la valeur dans notre conversion


Réponse à :

>....
>les valeurs maximales sont, elles, définie par ton >implémentation. Donc, le 'int' chez moi peut prendre 32 >octets et 4 chez vous.
>
> Bonne chance!
>
> Jonathan Mcdougal
> Montréal, Québec
> mcdougalljonathan@hotmail.com
> http://www.multimania.com/utopiasoftware
>
jeudi 13 février 2003 à 13:18:45 | Re : Vérifier si mon nombre est trop grand

omi

Faudrai voir si il met pas le bits d'overflow a 1 dans les flags mais ca demende un peut de programmation assembleur ça
et ca risque de ne pas marcher si il arrondi la valeur saisie a la limite d'un unsigned int
(note : il doit bien existe une fonction c qui fait ca mais je ne la connais pas)

OmI


-------------------------------
Réponse au message :
-------------------------------

> Salut
>
> Dans mon programme, je dois vérifier si le nombre entré dépasse la capacité d'un unsigned int.
> De quelle facon puis-je m'y prendre ? Est-ce que je regarde si ma valeur est en desous de 4294967295 ?
> Parce que quand je rentre une grande valeur plus grande que 4294967295, il semble que la valeur soit tronquée automatiquement a 4294967295 !?!?!
> Merci de votre aide
vendredi 14 février 2003 à 03:28:58 | Re : Vérifier si mon nombre est trop grand

jonathanmcdougall

> >....
> >les valeurs maximales sont, elles, définie par ton >implémentation. Donc, le 'int' chez moi peut prendre 32 >octets et 4 chez vous.
> >
> je suis curieux de savoir sur quel système tu travaille

Athlon MP sous XP et Linux, pourquoi?

> en réponse à la question première,
> - Si la saisie est faite via "cin",
> essayez la petite astuce sur "cin" que j'ai récement posté
> http://www.cppfrance.com/article.aspx?Val=1404

D'accord, j'avais dans la tête une opération arithmétique, pas un cin.

La solution est en effet de tester cin, car si celui-ci ne peut mettre la valeur dans la variable, il met son bit 'fail' à 1, ce qui rend tous les appels subséquents incorrects. Voir "l'astuce" en question.

Désolé,

--
Jonathan Mcdougal
Montréal, Québec
mcdougalljonathan@hotmail.com
http://www.multimania.com/utopiasoftware


Cette discussion est classée dans : nombre, valeur, vérifier, trop, grand


Répondre à ce message

Sujets en rapport avec ce message

nombre trop grand ? [ par pandakill ] Bonjour à tous,Voila j'ai récemment fait le programme suivant en C pour résoudre une solution, et malgré tous mes efforts je ne comprends pas pourquoi (X == E T S) ??? [ par cricri_b34 ] j'ai créer un petit programme qui permet de pratiquer ses math...donc mon programme doit vérifier si le nombre entré par l'utilisateur, ets égal la so DLL grand nombre pour VB [ par jmtoulon ] Bon jour @ tous.Bon voila je souhaitrais calculer avec VB des grands nombres genre 10^166 :)Mais vous savez que VB est limité. En fait je voudrais sav Probleme avec un nombre a virgule [ par c2millet ] BonjourVoila mon pb je récupère la valeur d'un champ ds une bdd c un nombre a virgule.G déclaré une variable de type FLOAT ds mon prog mais je ne récu Grand nombre supérieur 1,8e308 avec précision d'un int [ par maminova7775 ] Bonjour , tout est dans le titre , alors pouvez vous m'aider a faire un programme de ce genre qui puisse calculez des très grand nombre .... merci Créer methode avec nombre inconnu de parametre? [ par Sat83 ] Bonjour!je souhaiterais savoir comment faire pour declarer une fonction dont on ignore le nombre de parametre?un exemple:J'ai une fonction addInteger( tres tres grand nombre [ par thesimsone ] bonjour je voudrai que quelqu'un m'explique comment gérer de tres tres grand nombre pour faire un prog de cryptage rsa et comment on fait la concaténa Recherche de la plus grand valeur dans une liste chainée [ par doudou0088 ] Bonjour, J'ai une liste chainé contenant une valeur entière pour chaque élément (environ 96 éléments). J'aimerai affiché l'entier le plus grand de cet Vérifier valeur registre [ par Sniperr ] Bonsoir,J'aimerais savoir comment vérifier si (par exemple) la valeur "Version" existe dans "HKEY_LOCAL_MACHINE\SOFTWARE\AGORA Software BV\codevb".J'a limiter une valeur d'argument [ par ElMatador06 ] Bonjour a tous,Voila mon problème : j'ai un programme qui prend comme argument une base (nombre entre 2 et 16), un chiffre (1 ou 2), 1 pour addition e


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,281 sec (4)

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