浮動小数点数の配列にバイトの配列を変換する必要があります。私は、ネットワーク接続を介してバイトを取得し、それらを浮動小数点数に解析する必要があります。配列のサイズはあらかじめ定義されていません。 これは、これまでのところ、共用体を使用しているコードです。あなたはそれをより速く走らせる方法について何か提案がありますか?4バイトをC++で浮動小数点に変換する最速の方法
int offset = DATA_OFFSET - 1;
UStuff bb;
//Convert every 4 bytes to float using a union
for (int i = 0; i < NUM_OF_POINTS;i++){
//Going backwards - due to endianness
for (int j = offset + BYTE_FLOAT*i + BYTE_FLOAT ; j > offset + BYTE_FLOAT*i; --j)
{
bb.c[(offset + BYTE_FLOAT*i + BYTE_FLOAT)- j] = sample[j];
}
res.append(bb.f);
}
return res;
これは、あなたがC.であなたのコードの動作を、それを行うには許可されているが、あなたは、C++でunion
スルーしゃれを入力することはできません、私が使用して組合
union UStuff
{
float f;
unsigned char c[4];
};
_ "ネットワーク接続を介してバイトを取得し、それらを解析して浮動小数点数に変換する必要があります。"浮動小数点数が異なるコンピュータからのものであれば、浮動小数点数をよりよく定義する必要があります。 –
_ "それをより速く走らせる方法はありますか?" _ SOは最適化サービスではありません! –
"変換"を定義してください。考えられるマッピングはたくさんあります。あなたは "parse"という言葉を使っていますが、あなたのプログラムは解析を行うためにsemを使っていません。 –