De decimal à hexadecimal

Problème



Comment écrire un entier en hexadecimal dans une chaine de caractère ? Si vous trouvez plus court je suis preneur.

( Merci à Eric pour ses judicieuses suggestions )

Programme



dec2hex(unsigned long d) {
     if (d & ~0xFL ) dec2hex(d >> 4);
     putchar((d&0xF)["0123456789ABCDEF"]);
}

int main(int argc, char **argv) { dec2hex(atol(argv[1])) ; }


Variante


(Avec des zéros devant, Auteur: Eric)
fdec2hex(unsigned long d) {
     putchar("0123456789ABCDEF"[d >> 28]);
     if (d & 0xFFFFFFF) fdec2hex(d << 4);
}

int main(int argc, char **argv) { fdec2hex(atol(argv[1])); }

Variante


(Le résultat dans une chaine de charactères)
sdec2hex(char *p, unsigned long d) {
     if (d & ~0xFL ) sdec2hex(p-1, d >> 4);
     *p=(d&0xF)["0123456789ABCDEF"];
}

int main(int argc, char **argv) {
char s[] = "00000000\n" , *p= s+7;
unsigned long h = atol(argv[1]);

  sdec2hex(p,h); printf(s);
}

Variante


(Un mix des deux précédents, Auteur: Eric)
sfdec2hex(char *p,unsigned long d) {
     *p="0123456789ABCDEF"[d >> 28];
     if (d & 0xFFFFFFF) sfdec2hex(++p,d << 4);
}
int main(int argc, char **argv) {
char s[] = "00000000\n" , *p= s+7;
unsigned long h = atol(argv[1]);

  sfdec2hex(s,h); printf(s);
}

codingfun_nospam_@salemioche.com
Dernière mise à jour: 26 Feb 2008 - Réalisé avec youhp3
A voir : Site Bébé - Glaces.org - Sorbets.org - IP relax - creer son site / forum
v1.0 - © Nicolas JEAN :CV - NiKoZEN : Création site internet 2002-2008
Hébergement web - appareils musculation - Lingerie - rencontre
saut en parachute - shopping en ligne - referencement site web