Как преобразовать массив с плавающей запятой в массив байтов в C ++ (Arduino) - PullRequest
1 голос
/ 20 июня 2020

Как преобразовать массив чисел с плавающей запятой в массив байтов в Arduino. В основном преобразовать все переменные с плавающей запятой в массиве в байты (и округлить все переменные до ближайшего целого значения) эффективным способом.

Преобразуйте это:

float mlx90640To[768];

в:

byte bytearray[768];

1 Ответ

1 голос
/ 20 июня 2020

Думаю, я не совсем понимаю вопрос. Возможно, это проблема 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;
}
...