8
#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 進数で表すにはどうすればよいですか?

4

1 に答える 1