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>