Convertisseur hexadecimal / decimal / binaire sans les fonctions genre atoi()

Soyez le premier à donner votre avis sur cette source.

Vue 23 976 fois - Téléchargée 1 363 fois

Description

Parce qu'en cours je fais des conversion de ce genre, j'ai voulu le faire un C++. Mais pour moi, les exemples que j'ai trouvé sur le site me paraissent soit mal expliqué soit trop facile.
Je dit trop facile parce que la conversion se fait par les fonction atoi() et autre. Mes fonctions convertissent comme notre cerveau le ferait. Je vous laisse en jugé.

Conclusion :


Il n'y a pas de bug connu, je pense que j'améliorerai le code pour pouvoir convertir des nombre très grand. Dernière chose, mettez moi des commentaires pour que je puisse voir ce qu'elles valle.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Pamaury
Messages postés
341
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
17 juin 2008
1 -
pour les puissance, utilise plutôt une version perso de pow(parce que elle utilise log et tout le tralala car elle gère les exposant non entiers), çà augmenterai un peu la vitesse de tes fonctions :(dans ce cas, pas d'exposants négatifs)

unsigned long pPow(unsigned long a,unsigned long b)
{
unsigned long ret=1;
register long i=0;
if(b<=0)
return 0;
for(;i<b;i++,ret*=a);
return ret;
}
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
tu peux aussi un peut améliorer en utilisant les rotations de bits pour les "puissances puissances de 2"

càd que a^2 == a<<1
et que a^4 == a<<2
et que a^8 == a<<3
et que a^16 == a<<4
etc...

si tu fais a ^ 15, ça revient à écrire a^8 * a^4 * a^2 * a
et donc tu nous fais ça:

a = a<<3 * a<<2 * a<<1 * a;

ça demande juste de ... convertir l'exposant en un nombre binaire dans une chaîne de caractères ^^ vois si c'est possible. je viens d'avoir l'idée comme ça, alors c'est bien possible que ce soit une idée pourrie ;)
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
arf, j'ai dit une bêtise monumentale...

a << 3 = a*8, pas a^8, dsl :p

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.