2016-05-13 4 views
-3

Ich habe eine Binärdatei, die Datei hat char, float, Integer Long Integer und Double.Wie kann ich Byte in Binärdatei in C herausfinden?

Datensätze in der Datei (in der realen Binärdatei alle Daten binär sein werden, und es wird keine Zwischenräume oder newlines sein):

‚l‘ 9,8 5,64 1 8 ‚0‘ ...

und ich frage mich, wie kann ich Art des ersten Bytes lernen, zweites Byte ... (Ich meine, es sollte mir sagen: erstes Byte ist ein Zeichen, zweites Byte ist ein float, drittes Byte ist ein Doppel ...)

+0

Bitte Code zu Ihrer Frage hinzufügen! –

+2

Ohne bereits etwas über das, was in der Datei ist, zu wissen, kann man es wirklich nicht sagen. Es ist wie zu sagen: "Ich habe gehört, dass jemand bis 5 gezählt hat ... wie kann ich sagen, was sie gezählt haben?" – Dmitri

Antwort

4

Ein Byte ist nur eine Zahl zwischen 0 und 255. Es hat keinen Typ. char, int, float und andere Typen sind unterschiedliche Möglichkeiten, den Wert eines oder mehrerer benachbarter Bytes zu interpretieren.

Zum Beispiel, interpretiert als char, ist der Wert 65A. Aber wenn Sie ein Byte aus einer Datei lesen, gibt es keine Möglichkeit zu sagen, ob es die Nummer 65 oder das Zeichen A ist. Es kann auch ein Byte von einer Ganzzahl mit zwei Bytes sein (und Sie müssen auch das nächste Byte lesen, um die ganze Zahl zu erhalten).

Ihr Code ist derjenige, der über die Interpretation der Daten entscheidet.

+2

Dazu müssen wir, um zu entscheiden, den Code für _writer_ der Datei [oder eine Spezifikation des Dateiformats] kennen und diese als Richtlinie verwenden –

Verwandte Themen