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

时间:2018-11-18 18:54:10

标签: java hex unsigned signed hexdump

我有一个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”转换为“二进制十六进制”,或者因为我只提供了一个二进制文件,如何处理?

我不希望我的问题不清楚吗?

1 个答案:

答案 0 :(得分:0)

关于endianness

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

您的十六进制转储1303d007是四个字节13 03 d0 07

您的十六进制至二进制7D00313是相同的四个字节,但格式不同且顺序不同。它是07 D0 03 13。为简单起见,07上的前面的“ 0”被截断了,但是您会注意到顺序被100%颠倒了。

字节序告诉您字节以某种形式出现在传输或存储中的顺序。它回答了以下问题:“最高有效字节是要出现在第一个还是最后一个?”。

Endianness comparison