#include <stdio.h>
#include <string.h>
int main(void) {
char buf[256] = {};
unsigned long i=13835058055298940928;
snprintf(buf, 1024, "%lx", i); /* Line 7 */
printf("%s\n",buf);
return 0;
}
7 行目で、 を使用する%lux
と、snprintf
変換は行われません。を出力するだけですが、0x13835058055298940928x
だけを使用すると%lx
、予想される 16 進変換が出力されます。
unsigned long を 16 進数で表すにはどうすればよいですか?