在手册中,他们写了FF8055AAh。 在程序中我找到值AA5580FF。 这不是小事或大端事。但它是什么?
答案 0 :(得分:3)
它是little-endian(假设手册中的值是big-engian)。字节为{FF,80,55,AA},因此当您反转它们时,您有{AA,55,80,FF}。
答案 1 :(得分:1)
如果您的处理器是面向字节的(大多数现代处理器都是如此),它可能是小端或大端的。请注意,一个字节是两个十六进制数字。
答案 2 :(得分:0)
您可以按照以下方式使用小程序检查您的字节顺序:
http://c-faq.com/misc/endiantest.html
根据您发布的内容,您的字节顺序与手册相反。字节顺序交换令人困惑,但每个字都存储在大端或小端,导致交换为
从AABB CCDD到DDCC BBAA(16位字)。
答案 3 :(得分:0)
我从你的previous question收集你想要将这些十六进制值转换为单精度表示。使用online hexadecimal-to-floating-point converter,这就是我得到的:
FF8055AA
变为-NaN
AA5580FF
变为-1.8962955e-13
所以,真正的问题是,这些数字中的哪一个看起来与您希望在数据文件中看到的一样?无论哪一个看起来都像你想要的那样,将数据文件视为具有字节序,以便在加载和转换它时为其提供该值。