Combien de chiffre la variable int contient -elle? - C++ - Programmation
Marsh Posté le 30-07-2004 à 04:08:47
ca relève de l'algo, pas du C++
sinon ... la division entière est ton amie
Marsh Posté le 30-07-2004 à 04:15:40
ah merde, j'esperer qu'il y orai une fonction toute faite ou des trucs comme ca...
bouh!!
;-(
Marsh Posté le 30-07-2004 à 07:20:02
theShOcKwAvE a écrit : ca relève de l'algo, pas du C++ |
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.
Marsh Posté le 30-07-2004 à 08:29:02
'fectivement. Le log décimal (de abs(x)), pourquoi n'ya ai-je pas pensé ?
Marsh Posté le 31-07-2004 à 18:45:14
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 ?
Marsh Posté le 09-08-2004 à 17:30:55
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)
Marsh Posté le 09-08-2004 à 17:56:57
Attends, j'ai le code parfait, qui détermine MAX_SIZE à la bonne taille :
Code :
|
Marsh Posté le 09-08-2004 à 18:34:08
Code :
|
Non ?
Marsh Posté le 10-08-2004 à 22:53:07
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.
Marsh Posté le 11-08-2004 à 00:17:57
Code :
|
ed: javais pas vu lexemple de jesus
Marsh Posté le 11-08-2004 à 00:19:15
l'imporant c'est que le résultat soit correct et assuré, la performance est secondaire.
Marsh Posté le 11-08-2004 à 23:55:26
int intnbchiffre(int a){
int b=log10(abs(a))+1;
return b;
}
Marsh Posté le 12-08-2004 à 00:23:21
ben alors ca vaut 0... mais bon il suffit de mettre un
if (a==0){a=1;}
Marsh Posté le 30-07-2004 à 03:47:35
'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
---------------
!jb!