Frage

I heruntergeladen Hex Workshop, und mir wurde gesagt, eine DBC-Datei zu lesen.

  

Es sollte 28.315 enthalten, wenn Sie lesen   Offset 0x04 und 0x05

Ich bin nicht sicher, wie dies zu tun? Was bedeutet 0x04?

War es hilfreich?

Lösung

0x04 ist hex 4 (die 0x ist nur eine gemeinsame Präfix-Konvention für die Basis 16 Darstellung von Zahlen - da viele Menschen in dezimal denken), und das wäre das vierte Byte sein (da sie versetzt sind, sagt: sie wahrscheinlich die zählt erste Byte als Byte 0, so Offset 0x04 würde das 5. Byte sein).

Ich glaube, sie sagen, dass die 4. und 5. Byte zusammen 28.315 sein würde, aber haben sie gesagt, wenn dies Little-Endian oder Big-Endian?

28315 (dezimal) ist 0x6E9B hexadezimal, wahrscheinlich in der Datei, um 0x9B 0x6E wenn es Little-Endian.

siehe Little-Endian und Big-Endian in der Reihenfolge Bytes geschrieben werden:

Hinweis. Menschen typischen Schreib Dezimalschreibweise und hexadezimale in einer Big-Endian-Art und Weise, so:

256 würde als 0x0100 geschrieben wird (Ziffern auf der linken Seite sind die größte Skala)

Aber das dauert zwei Bytes und Little-Endian-Systeme werden den Low-Byte zuerst schreiben: 0x00 0x01. Big-Endian-Systeme werden den High-Byte schreiben zuerst:. 0x01 0x00

Normalerweise Intel-Systeme sind Little-Endian und andere Systeme variieren.

Andere Tipps

Denken Sie an eine Binärdatei als lineare Anordnung von Bytes.

0x04 wäre das fünfte sein (in einem 0 basierten Array) Element im Array, und 0x05 wäre der sechste sein.

Die beiden Werte in 0x04 und 0x05 können zusammen OR'ed werden, um die Nummer 28315 zu erstellen.

Da der Wert Sie lesen gerade 16 Bit ist, müssen Sie einen Wert über Bitshift und dann OR sie zusammen, das heißt, wenn Sie die Datei in c # manipulierten, würden Sie so etwas wie folgt verwenden:

int value = (ByteArray[4] >> 8) | ByteArray[5]);

Hoffentlich hilft erklären, wie Hex-Adressen arbeiten.

Es ist der 4. und der 5. XX Code Ihre Betrachtung ...

1   2  3  4  5  6
01  AB 11 7B FF 5A

Also, die 0x04 und 0x05 ist "7B" und "FF".

Unter der Annahme, was Sie sagen, in Ihrem Fall 7BFF sollte auf den gewünschten Wert gleich sein.

HTH

0x04 in hex 4 in dezimal. 0x10 in hex 16 in Dezimal. calc.exe können Sie zwischen hex und dezimal konvertieren.

Offset 4 Mittel 4 Bytes vom Anfang der Datei. Offset 0 ist das erste Byte in der Datei.

Sehen Sie in den Bytes 4 und fünf sollten sie die Werte 0x6E 0x9B (oder 0x9B 0x6E) haben je nach Endianess.

Starten Sie hier . Wenn Sie lernen, wie hexadezimale Werte zu lesen, werden Sie in einem viel besseren Form sein, um tatsächlich Ihr Problem zu lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top