二进制文件的十六进制表示

Hexadecimal representation of a binary file

我有一个 binaryfile.bin,其中有一组指令,我必须将其解码为十六进制。 我在 java 中编写了一个程序来执行此操作,并且我得到的十六进制与我在 linux.

中从 Hexdump 中得到的相同

我知道二进制文件中每条指令的实际二进制文件应该是什么,因为这是给定的。这可以在下面看到。我可以看到这两个十六进制之间存在某种关系。

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

我的问题是如何从 "hexdump" 到 "Hex of Binary" 或如何解决这个问题,因为我只提供了一个二进制文件?

我不希望我的问题太不清楚了?

一切都是为了 endianness

每个字节由两个十六进制字符表示(每个十六进制为 4 位)。

你的hexdump,1303d007是四个字节13 03 d0 07.

您的十六进制到二进制,7D00313 是相同的四个字节,但格式和顺序不同。即07D00313。为简单起见,07 前面的“0”被截断了,但随后您会注意到顺序已 100% 颠倒。

字节顺序告诉您字节在某种形式的传输或存储中出现的顺序。它回答了问题,"Is the most significant byte going to appear first or last?"。