如何手动将 4 个字节的十六进制转换为十进制
How to convert 4 bytes hex to decimal manually
我正在参加 CTF 挑战赛。我使用十六进制编辑器 (HexFiend) 打开损坏的 BMP 图像文件。我在十六进制 8E262C00
中突出显示 4 个字节。在底部,HexFiend 以十进制显示它们的值 2893454
。但是,我使用在线十六进制到十进制转换工具,它们的值是 2384866304
.
有人知道 HexFiend 是怎么想出 2893454
的吗?。我相信这是一个正确的答案,因为那是文件的大小。
这是文件的字节顺序。
二进制编码文件可以用小端或大端编码。不同之处在于单个字节具有哪个连续性,即如果您从左侧或右侧读取它们。请注意,位的顺序几乎总是大端。自然的阅读方式是大结局;字节是您所期望的存储。 8E262C00
变为 8E 26 2C 00
。但是,该文件似乎以小端格式存储。订单被翻转。换一种说法; 8E262C00
现在变为 00 2C 26 8E
,然后导致 2893454
的十进制表示
我认为是 Big Endian 和 Little Endian 的问题。
你应该看看这个在线转换工具,BMP文件格式是Little Endian,但我认为该工具可以通过Big Endian方法转换它。
试一试:https://www.scadacore.com/tools/programming-calculators/online-hex-converter/
我正在参加 CTF 挑战赛。我使用十六进制编辑器 (HexFiend) 打开损坏的 BMP 图像文件。我在十六进制 8E262C00
中突出显示 4 个字节。在底部,HexFiend 以十进制显示它们的值 2893454
。但是,我使用在线十六进制到十进制转换工具,它们的值是 2384866304
.
有人知道 HexFiend 是怎么想出 2893454
的吗?。我相信这是一个正确的答案,因为那是文件的大小。
这是文件的字节顺序。
二进制编码文件可以用小端或大端编码。不同之处在于单个字节具有哪个连续性,即如果您从左侧或右侧读取它们。请注意,位的顺序几乎总是大端。自然的阅读方式是大结局;字节是您所期望的存储。 8E262C00
变为 8E 26 2C 00
。但是,该文件似乎以小端格式存储。订单被翻转。换一种说法; 8E262C00
现在变为 00 2C 26 8E
,然后导致 2893454
我认为是 Big Endian 和 Little Endian 的问题。
你应该看看这个在线转换工具,BMP文件格式是Little Endian,但我认为该工具可以通过Big Endian方法转换它。
试一试:https://www.scadacore.com/tools/programming-calculators/online-hex-converter/