0

我在 Visual c++ 2010 Win Forms Application 中开发应用程序,我将接收十六进制数据(数据包)并将其存储在富文本框中。接收到的十六进制数据将代表浮点数。例如:浮点数 11.62 将被接收为 4139eb85(这是存储在 RichTextBox 中的字符串)。我想将十六进制数转换为其原始值并显示它。我正在努力将(例如)4139EB85 转换为其原始值 11.62

请尽早帮助我。

4

2 回答 2

2

不是便携式的,但是:

int x = 0x4139eb85;
float y = *reinterpret_cast<float *>(&x);
于 2013-03-27T08:01:53.347 回答
1

您可以将字符串解析为UInt32,然后用于BitConverter::ToSingle将字节转换为浮点数:

// Convert the hex string into a UInt32 (if necessary)
UInt32 bits = UInt32::Parse("4139EB85", System::Globalization::NumberStyles::HexNumber);
// Convert the bytes of the UInt32 to a Single/float
float f = BitConverter::ToSingle(BitConverter::GetBytes(bits), 0);
于 2013-03-27T07:58:06.483 回答