Digamos que tengo un archivo con contenidos:
0a00 910c 4e65 7467
y quiero imprimir cada dos números por separado. Mi método actual es usar printf("%xn", fgetc(file))
. Pero obtengo estos como resultados:
- 0
- 91
- do
- 4e
- 65
- 74
- 67
Mi pregunta es: ¿a dónde fueron los otros ceros? ¿Cómo puedo asegurarme de que están incluidos también?
Respuestas
0 para la respuesta № 1Los contenidos del archivo están en hexadecimal. No son "números" ya que en cada uno hay un personaje. No estás imprimiendo "dos números". Estás imprimiendo un byte. los %x
El especificador es para hexadecimal.
Cuando haces un fgetc()
, estás obteniendo un byte.
Un byte está representado por dos números hexadecimales. Esto es porque un byte puede tener 256
valores mientras que un número hexadecimal es 16
valores, y dos números hexadecimales tienen un total de 256
combinaciones.
Los personajes se enumeran uno por uno. 0a
se convierte a
. 00
se convierte 0
. y así.