Visual c ++ 2010 Winフォームアプリケーションでアプリケーションを開発しています。16進データ(パケット)を受け取り、リッチテキストボックスに保存します。受信した16進データは、浮動小数点数を表します。例:浮動小数点数11.62は、4139eb85(RichTextBoxに格納されている文字列)として受信されます。16進数を元の値に変換して表示したかったのです。(例)4139EB85を元の値11.62に変換するのに苦労しています
早くても助けてください。
Visual c ++ 2010 Winフォームアプリケーションでアプリケーションを開発しています。16進データ(パケット)を受け取り、リッチテキストボックスに保存します。受信した16進データは、浮動小数点数を表します。例:浮動小数点数11.62は、4139eb85(RichTextBoxに格納されている文字列)として受信されます。16進数を元の値に変換して表示したかったのです。(例)4139EB85を元の値11.62に変換するのに苦労しています
早くても助けてください。
ポータブルではありませんが:
int x = 0x4139eb85;
float y = *reinterpret_cast<float *>(&x);
文字列をとして解析してから、バイトをfloatに変換するために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);