|
|
Problème
Comment convertir un chaine de caractères contenant un nombre en hexadecimal ?
( qui a plus court ? )
( Merci à Eric pour ses optimisations )
Programme
unsigned long hex2dec(char *s, unsigned long d) {
return *s ? hex2dec(s + 1, (d << 4) + *s-'0'-(*s>='A')*7 ) : d;
}
int main (int argc, char **argv) {
printf("%ld\n", hex2dec(argv[1], 0));
}
|