2015-09-23 12 views
5

Quale specificatore del formato printf posso utilizzare per stampare un numero intero senza segno a 64 bit in notazione esadecimale su 32/64 bit e Windows/POSIX? Il più vicino che ho visto è %llX ma non sono sicuro che sia abbastanza portatile. Le risposte che ignorano i compilatori più vecchi (ad esempio Visual Studio 2010) sono accettabili.Specificatore di formato printf portatile per 64 bit esadecimali?

risposta

6

La macro PRIx64 in <inttypes.h> è ciò che stai cercando.

E 'una stringa di token, in modo da poter utilizzare come: fprintf(stdout, "answer = %"PRIx64"\n", val);

Dal momento che si specifica %llX, probabilmente vuole maiuscolo; utilizzare: PRIX64

+0

E 'stato. Il riferimento inttypes che stavo osservando aveva solo macro PRIx fino a 32 bit per qualche ragione. – thmiller

1

È possibile utilizzare le macro PRIx64 o PRIX64 (for unsigned uppercase hexadecimal integer) definite nell'intestazione <inttypes.h>.

Problemi correlati