我有一個數組,其中有數據混合格式。它包含無符號整數&浮點數(每個都以4字節數據存儲)。轉換4字節的數據包含uint和浮動浮動
我想將每個4字節的數據轉換爲浮點數。但是,沒有任何方法爲我工作。例如。
union
{
DWORD i;
float f;
} u;
此方法不起作用。 reinterpret_cast也不會浮動。
我擁有的數據就是這樣。
{ 1, 8, 1.00000, -1.000000 }
我有一個指向內存的指針uint32_t
。
DWORD value = *(uint_pointer)
正確地給我,而不是其他。 使用類型轉換float會導致1.00000 & -1.00000被正確識別,但不會被其他兩個識別。
我基本上希望得到的結果是
{ 1.00000, 8.00000, 1.00000, -1.00000 }
我看着SO對於以前所有的答案,但他們沒有工作可靠,因此我再次發佈此得到一些想法。
感謝
請格式化您的文章。你已經在這裏差不多兩年了。 –
還解釋了這個問題比「它不工作」 –
Float和int有非常不同的機器表示。除了一些特殊情況,根本無法從字節中確定類型,正如@ s.bandara所指出的那樣。 –