¿Por qué los archivos binarios como este fragmento de un PNG tienen todos estos espacios en blanco?

¿Por qué los archivos binarios como este fragmento de un PNG tienen todos estos espacios en blanco?

Aquí hay un fragmento de la primera parte de un archivo PNG que se ve simplemente abriéndolo en Sublime Text y viendo el código hexadecimal directamente.

8950 4e47 0d0a 1a0a 0000 000d 4948 4452
0000 02e7 0000 0155 0806 0000 004c ed41
2b00 0000 0662 4b47 4400 ff00 ff00 ffa0
bda7 9300 0000 0774 494d 4507 d907 1209
3738 0601 8766 0000 2000 4944 4154 789c
ecbd 799c 6567 5de7 fff9 3ef7 5675 279d
a4b3 d008 1242 2288 c486 10e8 ee74 57a7
bb53 28a2 202e a8c1 0d07 d780 a8a3 8338
fc04 c601 45dc 1750 5161 1670 e437 0e71
5c90 4504 a549 77ba 7a65 0f20 8681 8140
423a 2b49 7aa9 aafb 7ce7 8fb3 dce7 3ce7

Parece que podría ahorrar algo de espacio eliminando los espacios en blanco del archivo. Me interesaría saber si esa sería una técnica de optimización para PNG. O tal vez haya alguna ventaja o propósito en tener estas secuencias de 4 caracteres separadas por 1 espacio que no conozco.

Respuesta1

El espacio en blanco no está en el archivo. Lo que estás viendo no estexto– es una lista de hexadecimalnúmeros, y un número es el mismo tenga o no espacios en el medio. Así que todavíacuatro bytesya sea que los escriba como 89 50 4e 47o 89504e47como (137, 80, 78, 71)o de hecho como �PNG.

Probablemente estés viendo esto porque Sublime Text detecta que el contenido del archivo no se puede mostrar de forma sensata como texto. Entonces elige una representación alternativa: cada byte como dos dígitos hexadecimales. (Para un mejor ejemplo, eche un vistazo a estoenchufarpara texto sublime.)

Recordar quecadaEl archivo está formado por bytes y un byte es un número entre 0 y 255 decimal (o 0 a FF hexadecimal). Aunque los editores de textogeneralmentemuestra cada byte como una letra, esa no es la única forma de hacerlo.

información relacionada