esta función tan conocida que pasa datos de binario a hexadecimal no logro entender como lo hace:<br><br>const char *<br>mrtd_hexdump(const void *data, unsigned int len)<br>{<br>    static char string[1024];<br>    unsigned char *d = (unsigned char *) data;<br>
    unsigned int i, left;<br>    <br><br>    memset(string, 0, sizeof(string));//inicializa a 0.<br>    left = sizeof(string); //left no se usa , no entiendo para que lo declara<br>    for (i = 0; len--; i += 3){  //no entiendo el control de este bucle, ¿cuando acaba?<br>
        if (i >= sizeof(string) -4) <br>            break;<br>        _snprintf(string+i, 4, " %02x", *d++);  ¿ por que tiene d un *? la cadena de formato "%02x" no la entiendo<br>    }<br>    return string;<br>
}<br><br>a ver si conseguis explicarmelo porque llevo una hora y a pesar de que intuyo que el proceso de conversión será el que seguimos normalmente para pasar de hexadecimal a binario, en el código no lo entiendo.<br>