Duda con el sistema hexadecimal

Hola, tengo una duda con este sistema: tengo un fichero de data en hex, en donde para buscar un dato que tengo en sistema decimal tengo que convertirlo.
La cuestión es que con la calculadora de win10 paso 1819(DEC) a 71B(hex) y al introducir 71B en el buscador del fichero en hex no me aparece nada, de hecho poniendo 071B tampoco, ni se como buscarlo. Al final, resulta que tenia que lo encontre en el fichero hex como 1B07.
Porque es esto? Y como debería escribirlo en el buscador para encontrar ese dato exacto?
klaim2003 escribió:Hola, tengo una duda con este sistema: tengo un fichero de data en hex, en donde para buscar un dato que tengo en sistema decimal tengo que convertirlo.
La cuestión es que con la calculadora de win10 paso 1819(DEC) a 71B(hex) y al introducir 71B en el buscador del fichero en hex no me aparece nada, de hecho poniendo 071B tampoco, ni se como buscarlo. Al final, resulta que tenia que lo encontre en el fichero hex como 1B07.
Porque es esto? Y como debería escribirlo en el buscador para encontrar ese dato exacto?


No sé qué archivo estarás modificando pero infórmate de
Byte swap, tiene que ver el tipo de Big endian y little endian
Salu2
Vale, creo que entiendo lo que decís. Una duda que me surge: un numero de tres dígitos en hex, se leería con 4, añadiendo un 0 delante, no? El ejemplo que he puesto, el 71B seria en realidad 071B, no? Y luego entiendo que en el archivo (es un savegame) aparecen simplemente invertidos los dos conjuntos de cifras, el 07 y el 1B
Depende de qué es lo que quieras leer. Cada Byte corresponde a dos dígitos hexadecimales, y es a lo que afecta el endianness. Si lo que quieres leer es un número de 16 bits -> 2 bytes, tendrás que leer dos bloques de dos dígitos hexadecimales (1B,07) y, a la hora de interpretarlos como decimal tendrás que ordenarlos según el endianismo, que en tu caso parece ser little endian, lo que implica interpretar los bloques de derecha a izquierda: 07,1B. Pero podrías querer leer un número entero de 32 bits (4 Bytes, 8 dígitos hex), un o uno decimal de 64 bits (8 Bytes, 16 dígitos hex) entre otras mil cosas.

En general te interesará leer bytes completos, así que la mayoría de veces te interesará leer los dígitos hex de dos en dos.
4 respuestas