Мне нужно преобразовать массив байтов в массив поплавков. Я получаю байты через сетевое соединение, а затем должен разбирать их в поплавках. размер массива не является предварительно деконфигурированным. это код, который я имею до сих пор, используя союзы. Есть ли у вас какие-либо предложения о том, как заставить его работать быстрее?Самый быстрый способ конвертировать 4 байта в float в 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;
Это объединение я использую
union UStuff
{
float f;
unsigned char c[4];
};
_ «Я получаю байты через сетевое соединение, а затем должен разбирать их в поплавках». _ Вы должны лучше определить «плавающие», если они поступают с другого компьютера. –
_ «Есть ли у вас предложения о том, как заставить его работать быстрее?» _ SO не является сервисом оптимизации! –
Определите «конвертировать». Существует много возможных отображений. Вы использовали слово «parse», но ваша программа не сгруппировала сеанс. –