我有一个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”转换为“二进制十六进制”,或者因为我只提供了一个二进制文件,如何处理?
我不希望我的问题不清楚吗?
答案 0 :(得分:0)
关于endianness。
每个字节都由两个十六进制字符表示(每个十六进制为4位)。
您的十六进制转储1303d007
是四个字节13
03
d0
07
。
您的十六进制至二进制7D00313
是相同的四个字节,但格式不同且顺序不同。它是07
D0
03
13
。为简单起见,07
上的前面的“ 0”被截断了,但是您会注意到顺序被100%颠倒了。
字节序告诉您字节以某种形式出现在传输或存储中的顺序。它回答了以下问题:“最高有效字节是要出现在第一个还是最后一个?”。