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

  FORUM HardWare.fr
  Programmation
  C++

  Combien de chiffre la variable int contient -elle?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Combien de chiffre la variable int contient -elle?

n°810637
lunarnet76
Posté le 30-07-2004 à 03:47:35  profilanswer
 

'jour!
Euh alors j'ai une variable  
int a=6541234;
et je voudrais savoir de combien de chiffre il est composé!!!
il me faut un truc vraiment trés simple! sinon compliqué g!!
Merci
 :bounce:  :bounce:  :bounce:


---------------
!jb!
mood
Publicité
Posté le 30-07-2004 à 03:47:35  profilanswer
 

n°810641
theshockwa​ve
I work at a firm named Koslow
Posté le 30-07-2004 à 04:08:47  profilanswer
 

ca relève de l'algo, pas du C++
 
sinon ... la division entière est ton amie

n°810644
lunarnet76
Posté le 30-07-2004 à 04:15:40  profilanswer
 

ah merde, j'esperer qu'il y orai une fonction toute faite ou des trucs comme ca...
bouh!!
;-(


---------------
!jb!
n°810652
el muchach​o
Comfortably Numb
Posté le 30-07-2004 à 07:20:02  profilanswer
 

theShOcKwAvE a écrit :

ca relève de l'algo, pas du C++
 
sinon ... la division entière est ton amie


 
Y'a bcp plus rapide (mais un peu crade) : caster l'int en float/double et récupérer les bits d'exposant avec un masque. et si ça se trouve, il y a une fonction qui fait ça dans la librairie C standard.


Message édité par el muchacho le 30-07-2004 à 07:20:36
n°810661
Taz
bisounours-codeur
Posté le 30-07-2004 à 08:04:36  profilanswer
 

log(x)

n°810667
el muchach​o
Comfortably Numb
Posté le 30-07-2004 à 08:29:02  profilanswer
 

'fectivement.  Le log décimal (de abs(x)), pourquoi n'ya ai-je pas pensé ? :D


Message édité par el muchacho le 30-07-2004 à 08:34:00
n°812033
raytaller
Posté le 31-07-2004 à 18:45:14  profilanswer
 

el muchacho a écrit :

Y'a bcp plus rapide (mais un peu crade) : caster l'int en float/double et récupérer les bits d'exposant avec un masque. et si ça se trouve, il y a une fonction qui fait ça dans la librairie C standard.


et pourquoi pas en string [:dawa] ?

n°818293
jesus_chri​st
votre nouveau dieu
Posté le 09-08-2004 à 17:30:55  profilanswer
 

unsigned int a = ...
char buffer[MAX_SIZE]; // MAX_SIZE assez grand
sprintf(buffer, "%d", a);
int longueur_de_a = strlen(buffer);
 
et ça marche pour 0 (1 chiffre)

n°818320
HelloWorld
Salut tout le monde!
Posté le 09-08-2004 à 17:56:57  profilanswer
 

Attends, j'ai le code parfait, qui détermine MAX_SIZE à la bonne taille :

Code :
  1. int a = 6541234;
  2. int max_size;
  3. if ( a == 0 )
  4. {
  5.     max_size = 1;
  6. }
  7. else
  8. {
  9.     max_size = log( abs( a ) ) + 1;
  10. }
  11. char * buffer = malloc( max_size + 1 );
  12. sprintf( buffer, "%d", abs( a ) );
  13. int longueur_de_a = strlen( buffer );
  14. delete( buffer );


:bounce:


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°818345
WhatDe
Posté le 09-08-2004 à 18:34:08  profilanswer
 

Code :
  1. #include <stdio.h>
  2. main()
  3. {
  4. int nb = 6541234;
  5. int nbChiffres = 0;
  6. while(nb%10 != 0)
  7. {
  8.  nbChiffres++;
  9.  nb /= 10;
  10. }
  11. printf("%d", nbChiffres);
  12. }


Non ?

mood
Publicité
Posté le 09-08-2004 à 18:34:08  profilanswer
 

n°818349
WhatDe
Posté le 09-08-2004 à 18:35:20  profilanswer
 

Enfin c'est vrai que c'est long :)

n°819646
el muchach​o
Comfortably Numb
Posté le 10-08-2004 à 22:53:07  profilanswer
 

La solution log(abs(x))+1 est longue aussi (c'est pour ça que je n'y ai pas pensé). Le cast en double + masque est plus sioux, mais bcp plus rapide.

n°819668
cris56
Posté le 10-08-2004 à 23:03:56  profilanswer
 

tu pourrais tester pour voir l'ecart de performance ?

n°819853
red factio​n
Posté le 11-08-2004 à 00:17:57  profilanswer
 

Code :
  1. int a=654284;
  2. char buf[16];
  3. sprintf(buf,"%d",a);
  4. nbChiffres=strlen(a);


[:jesorsv]
 
ed: javais pas vu lexemple de jesus  :fou:


Message édité par red faction le 11-08-2004 à 00:23:34
n°819855
Taz
bisounours-codeur
Posté le 11-08-2004 à 00:19:15  profilanswer
 

l'imporant c'est que le résultat soit correct et assuré, la performance est secondaire.

n°820979
lunarnet76
Posté le 11-08-2004 à 23:55:26  profilanswer
 

int intnbchiffre(int a){
 int b=log10(abs(a))+1;
 return b;
}

n°820995
Ace17
Posté le 12-08-2004 à 00:20:32  profilanswer
 

Et si a vaut zero?

n°820999
lunarnet76
Posté le 12-08-2004 à 00:23:21  profilanswer
 

ben alors ca vaut 0... mais bon il suffit de mettre un  
if (a==0){a=1;}


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

  Combien de chiffre la variable int contient -elle?

 

Sujets relatifs
Faire un test sur une variableNom de variable généré automatiquement
Problème de variableMin max par variable MYSQL/PHP
Pb de variable...Variable Globale - Comment la créer et la passer entre les fenêtres...
Passage de variable à un script perl en console ?[POO] Probleme de recuperation de variable
[Résolu] variable garde sa valeur d'une page à une autre ? possible ?Utilisation de variable dans lien pour paramétrer un objet
Plus de sujets relatifs à : Combien de chiffre la variable int contient -elle?


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