Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1424 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Variable de très grande taille

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variable de très grande taille

n°1415567
nisalon_ca​je
Posté le 28-07-2006 à 20:27:43  profilanswer
 

Bonjour, dans un programme j'ai besoin de manipuler des variables entière de très grande taille (> 10 puissance 10). Cependant, quand je les crée, elles deviennent négatives . Je pense que c'est du à leur taille démeusurée malgré que je les ai déclaré en long long int .
 
Comment faire pour les utiliser correctement ?
 
Merci d'avance
 
NC

mood
Publicité
Posté le 28-07-2006 à 20:27:43  profilanswer
 

n°1415605
olivthill
Posté le 28-07-2006 à 22:41:42  profilanswer
 

Le long long int peut être déclaré non signé :
 
unsigned long long int i
 
On peut alors avoir 20 chiffres car
2 puissance 64 est 18 446 744 073 709 551 616.
 
Avec un long long int signé on 19 chiffres.
 
Donc un long long int devrait être largement suffisant pour contenir 10 puissance 10. Je soupçonne que le problème est ailleurs.
 
Une faute courante consiste à utiliser correctemment des long long int, sauf dans la routine d'affichage du nombre.

n°1415609
nisalon_ca​je
Posté le 28-07-2006 à 22:44:36  profilanswer
 

heu, je ne pense pas que le probleme soit là (dans l'affichage) parce que je fais simplement un cout<<le_tres_grand_nombre<<endl; et je le convertis en + dans une fonction pour l'afficher à l'écran dans une appli opengl. Cependant, j'essaierai le unsigned long long int demain et je vous dirai le résultat
sur ce, bonne nuit :)

n°1415613
skelter
Posté le 28-07-2006 à 22:55:17  profilanswer
 

olivthill a écrit :

Le long long int peut être déclaré non signé :
 
unsigned long long int i
 
On peut alors avoir 20 chiffres car
2 puissance 64 est 18 446 744 073 709 551 616.
 
Avec un long long int signé on 19 chiffres.
 
Donc un long long int devrait être largement suffisant pour contenir 10 puissance 10. Je soupçonne que le problème est ailleurs.
 
Une faute courante consiste à utiliser correctemment des long long int, sauf dans la routine d'affichage du nombre.


 
 :heink:  'long long int' n'existe pas en C++

n°1415618
Taz
bisounours-codeur
Posté le 28-07-2006 à 23:06:04  profilanswer
 

ouais enfin bon, bon nombre de compilateur le supporte et c'est en passe de normalisation.

n°1415621
nisalon_ca​je
Posté le 28-07-2006 à 23:07:58  profilanswer
 

en fait je viens de retester, et unsigned long long int marche, cependant il m'arrive parfois d'atteindre sa valeur limite (18446744073709551615)... y a t il plus grand ?

n°1415624
olivthill
Posté le 28-07-2006 à 23:10:30  profilanswer
 

En C, avec un printf() il faudrait écrire  

printf("%I64d", le_tres_grand_nombre);
ou
printf("%lld", le_tres_grand_nombre);

%d ou %ld tronquerait le nombre et pourrait afficher un nombre négatif.

n°1415626
Taz
bisounours-codeur
Posté le 28-07-2006 à 23:11:51  profilanswer
 

qui te parle de C bordel ! et ton erreur de format, c'est la corruption mémoire directe, ça tronque rien du tout.
 
y a pas plus grand, utilise un truc comme gmp, ou change d'algo / utilise des logarithmes / fais du calcul flottant

n°1415627
olivthill
Posté le 28-07-2006 à 23:12:03  profilanswer
 

Non, il n'y pas plus grand. Après, il faut utiliser des bibliothèques spéciales qui traitent les très grands nombres.

n°1415745
nisalon_ca​je
Posté le 29-07-2006 à 14:36:40  profilanswer
 

ok merci pour toutes ces réponses :)

mood
Publicité
Posté le 29-07-2006 à 14:36:40  profilanswer
 

n°1415833
slash33
Posté le 29-07-2006 à 19:54:39  profilanswer
 

Pourquoi ne pas passer par un double ?

n°1415845
karlkox
Posté le 29-07-2006 à 21:24:17  profilanswer
 

Si un long long int ne suffit, un double me parait juste inadéquat ...

n°1427541
drayell
Posté le 18-08-2006 à 22:51:24  profilanswer
 

__int64 ?

n°1427584
Taz
bisounours-codeur
Posté le 19-08-2006 à 00:18:55  profilanswer
 

...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Variable de très grande taille

 

Sujets relatifs
Lancer une commande DOS avec une variable dans un VBS[Fortran] Renommer un fichier à partir d'une variable
variable pas assez grandeConcatenation dans une variable (set)
Modification de la variable PATHInsertion de la variable NULL après formulaire
Utiliser une variable d'un script dans un autre scriptnombre dans une BDD vers variable
Très important 
Plus de sujets relatifs à : Variable de très grande taille


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR