Why does
float test = (float)(floatBytes[3] << 24 | floatBytes[2] << 16 | floatBytes[1] << 8 | floatBytes[0]);
not produce the same result as
float test = *(reinterpret_cast<float *>(floatBytes))
The bottom example produces the expected result whereas the top produces a crazy high/low value that isn't what I wanted.