Шестнадцатеричное представление двоичного файла - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть файл binaryfile.bin, в котором у меня есть набор инструкций, которые я должен декодировать в шестнадцатеричное.Я написал программу на Java, которая делает это, и я получаю тот же шестнадцатеричный код, который получаю из Hexdump в Linux.

Я знаю, каким должен быть фактический двоичный файл для каждой из инструкций в двоичном файле, так как этодано.Который можно увидеть ниже.Я вижу, что есть некоторая связь между двумя гексами.

Hexdump  Binary                           Hex of Binary
1303d007 00000111110100000000001100010011 7D00313
93033302 00000010001100110000001110010011 2330393
138ec3f9 11111001110000111000111000010011 F9C38E13
1305a000 00000000101000000000010100010011 A00513
73000000 00000000000000000000000001110011 73

Мой вопрос: как мне перейти от "hexdump" к "Hex of Binary" или как можно поступить так, как мне предоставляют только двоичный файл?

Не надеюсь, что мой вопрос слишком неясен?

1 Ответ

0 голосов
/ 18 ноября 2018

Все о endianness .

Каждый байт представлен двумя шестнадцатеричными символами (каждый шестнадцатеричный код - 4 бита).

Ваш hexdump, 1303d007 - эточетыре байта 13 03 d0 07.

Ваш шестнадцатеричный двоичный код, 7D00313 - это те же четыре байта, но отформатированные по-разному и в другом порядке.Это 07 D0 03 13.Предыдущий '0' в 07 был усечен для простоты, но затем вы заметите, что порядок на 100% обратный.

Порядковый порядок указывает вам порядок появления байтов в некоторой форме передачи или хранения,Он отвечает на вопрос: «Самый старший байт появится первым или последним?».

Endianness comparison

...