representación hexagonal larga sin firmar

#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;
}

En la línea 7, si uso%lux entoncessnprintf No hace ninguna conversión, y solo imprime.0x13835058055298940928x, mientras que si uso solo%lx , imprime una conversión hexadecimal esperada.

¿Cómo represento sin signo largo en hexadecimal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta