If the bytes are supposed to represent float values, then they can be combined in two different ways, depending on the whether the byte order is big or little endian.
Which way depends on what computers and MCUs you are using.
I receive data from a sensor to esp32 and in the datasheet of the sensor the data must be converted to a float using big-endian format as I mentioned in the topic
1. 0x0F7F3A46 is the binary32 formatted bit stream for 1st float number.
Converting 0x0F7F3A46 into float number using memcpy() function.
float y1;
long m = 0x0F7F3A46;
memcpy(&y1, &m, sizeof y1); //destination, source
Serial.println(y1, 2); //y1 = 0.00
2. 0x3D968735 is the binary32 formatted bit stream for 2nd float number. 3. 0x3BD7118B is the binary32 formatted bit stream for 3rd float number. 4. 0x3CC53A7B is the binary32 formatted bit stream for 4th float number.
Now, use for() loop to transform the data items of the new_data[] array into float numbers and save in array float Q[].