Warum Binärdateien wie dieser PNG-Ausschnitt all diese Leerzeichen enthalten

Warum Binärdateien wie dieser PNG-Ausschnitt all diese Leerzeichen enthalten

Hier ist ein Ausschnitt des ersten Teils einer PNG-Datei, der angezeigt wird, wenn man sie einfach in Sublime Text öffnet und den Hex-Code direkt anzeigt.

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

Es scheint, als könnten Sie etwas Platz sparen, indem Sie die Leerzeichen in der Datei entfernen. Mich würde interessieren, ob das eine Optimierungstechnik für PNGs wäre. Oder vielleicht gibt es einen Vorteil oder Zweck, diese 4-Zeichen-Sequenzen durch 1 Leerzeichen zu trennen, den ich nicht kenne.

Antwort1

Das Leerzeichen ist nicht in der Datei. Was Sie sehen, ist nichtText– es ist eine Liste von hexadezimalenZahlen, und eine Zahl ist immer gleich, egal ob sie in der Mitte Leerzeichen hat oder nicht. Es ist also immer nochvier Bytesob Sie sie als 89 50 4e 47oder 89504e47oder als (137, 80, 78, 71)oder ja als schreiben �PNG.

Sie sehen dies wahrscheinlich, weil Sublime Text erkennt, dass der Inhalt der Datei nicht sinnvoll als Text angezeigt werden kann. Daher wählt es eine alternative Darstellung – jedes Byte als zwei Hex-Ziffern. (Ein besseres Beispiel finden Sie hier:Pluginfür Sublimetext.)

Erinnere dich daranjedenDatei besteht aus Bytes, und ein Byte ist eine Zahl zwischen 0 und 255 dezimal (oder 0 bis FF hexadezimal). Obwohl Texteditorenallgemeinjedes Byte als Buchstaben anzeigen, das ist nicht die einzige Möglichkeit, dies zu tun.

verwandte Informationen