2010-08-20 14 views
7

Quiero formatear un int sin firmar en una cadena larga de 8 dígitos con ceros a la izquierda.¿Cómo formatear unsigned int en un número hexadecimal de 8 dígitos?

Esto es lo que tengo hasta ahora:

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

imprime "f83bac9", pero quiero "0f83bac9". ¿Cómo puedo lograr el formateo?

+1

No he votado negativamente, pero podría imaginar que se trata de una pregunta que puede ser respondida simplemente mirando en la página del manual. –

Respuesta

5

Puede usar relleno cero especificando 0 y la cantidad de dígitos que desea, entre % y el tipo de formato.

Por ejemplo, para los números hexadecimales con (al menos) 8 dígitos, que tendría que utilizar %08x:

printf("%08x", number); 

de salida (si es number 500):

000001f4

Cuestiones relacionadas