2017-12-01 16 views
0

アンリアル・エンジン(C++)抽出のfloat32 <uint8>

こんにちは、私は、TCP接続からバイトのTARRAYを持っています。私は58バイトのヘッダーと12 x 4バイトのFloat32を持っています。私は私のアレイバイトから12個のfloat32番号を抽出する必要があり、私は最初の数を抽出するため、このコードを試してみましたが、結果は毎回間違っている:

float ReceivedUE4float32; 
ReceivedUE4float32 = float(ReceivedData[58]); //58 index of first float32 
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("Dato intdex 58 ~> %f"), ReceivedUE4float32)); 

誰かが私を助けることができますか?

ソケット:https://github.com/openigtlink/OpenIGTLink/blob/release-3.0/Documents/Protocol/index.md

変換(12x4バイト数):https://github.com/openigtlink/OpenIGTLink/blob/release-3.0/Documents/Protocol/transform.md

答えて

0

float(ReceivedData[58])ReceivedDataから第58バイトを逆参照し、あなたが望むものではありません、その値からfloatを作成します。

あなたは、データを読み取るためにreinterpret_castを使用することができます。

float value = *(reinterpret_cast<float*>(ReceivedData + 58)); 

あなたがターゲットとしているプラ​​ットフォーム言及し、これは、エンディアンする全く注意を払っていない覚えておいてくださいませんでした。

関連する問題