Думаю, я не совсем понимаю вопрос. Возможно, это проблема XY.
Но быстрое и эффективное решение может быть приведено ниже.
#include <iostream>
#include <cmath>
using byte = unsigned char;
float mlx90640To[768];
byte bytearray[768];
int main() {
// Convert all float values
for (size_t i{}; i < 768; ++i)
bytearray[i] = static_cast<byte>(std::lround(mlx90640To[i]));
return 0;
}