Tecnología

Inicio

Cómo leer archivos Hex en C ++

Un archivo hexadecimal es un archivo de datos que contiene información codificada en dígitos hexadecimales. Se necesitan cuatro bits para representar un solo dígito hexadecimal, por lo que la lectura de un archivo hexadecimal utilizando el tipo de datos más pequeño disponible en C ++, char, involucra la lectura de dos dígitos hexadecimales a la vez. Aislar estos dígitos con operaciones a nivel de bits para analizar a través de un archivo de un dígito hexadecimal a la vez.

Instrucciones

1 Incluir el "iostream" y encabezados "fstream" mediante la colocación de las siguientes líneas de código en la parte superior de su archivo fuente C ++:

incluir <iostream> incluir <fstream>

2 Crear un objeto "ifstream" en la función "principal" u otro bloque de código con la siguiente línea:

ifstream archivoEntrada;

3 Abrir un archivo usando el método "abierto" del objeto "ifstream", especificando su nombre como argumento:

inputfile.open ( "hexfile.dat");

Incluir la ruta completa y el nombre del archivo que desea abrir utilizando dobles barras invertidas (por ejemplo, "C: \ Users \ ...") si el archivo no residir en el mismo directorio que el ejecutable.

4 Cree dos variables para contener cada par de dígitos hexadecimales a medida que se tira en el archivo:

sin firmar Char H, L;

5 Iniciar un bucle "while":

while (1) {

6 Utilice el operador ">>" para leer un byte desde el archivo y almacenarlo en la "h"

archivoEntrada >> h;

7 Separar los dos dígitos hexadecimales en "h" con las dos líneas siguientes:

l = h & 0x0F;

h >> = 4;

Después de estas declaraciones "h" contiene el primer dígito y "l" la segunda.

8 Compruebe si se ha alcanzado el final del archivo (o si el archivo no se puede leer por cualquier razón), que sale del bucle y cerrar el archivo si tiene:

Si {break; inputfile.close ();} (inputfile.good ()!)

9 Escribir código para manejar los dígitos hexadecimales a medida que se toman en las siguientes líneas de salida simplemente como dígitos hexadecimales a la consola estándar.:

cout << << hexagonal (unsigned int) h << "";

cout << << hexagonal (unsigned int) l << "";

10 Cerrar el bucle "while":

};