2010-08-20 6 views
7

Je souhaite formater un entier non signé en une chaîne longue de 8 chiffres avec des zéros en tête.Comment formater un entier non signé en un nombre hexadécimal à 8 chiffres?

C'est ce que j'ai jusqu'à présent:

unsigned int number = 260291273; 
    char output[9]; 
    sprintf(output, "%x", number); 
    printf("%s\n", output); // or write it into a file with fputs 

Prints "f83bac9", mais je veux "0f83bac9". Comment puis-je réaliser le formatage? Utilisez "% 08x" en tant que chaîne de format pour les numéros de série

+1

Je n'ai pas fait de downvote, mais je pourrais imaginer que ce soit pour une question qui peut être simplement répondue en regardant dans la page de manuel. –

Répondre

5

Vous pouvez utiliser le remplissage nul en spécifiant 0 et le nombre de chiffres souhaité, entre % et le type de format.

Par exemple, pour les nombres hexadécimaux avec (au moins) 8 chiffres, vous utiliseriez %08x:

printf("%08x", number); 

sortie (si number est de 500):

000001f4

Questions connexes