JhaoDa
@JhaoDa
LaravelRUS Team

Half-precision floating-point ли это?

Есть регулятор температуры ТЕРМОДАТ-19Е4. Согласно документации, показания датчиков он возвращает в виде двух байт, например, "FD93h" (а может следует читать как "93FDh", порядок не оговорён, всякое встречалось), что в переводе на человеческий есть -62,1°C (пример из документации).
Это числа половинной точности, в IEEE 754 именуемые binary16?
Может быть, кто-нибудь встречался с чем-то подобным и может подсказать алгоритм конвертации?
  • Вопрос задан
  • 3242 просмотра
Решения вопроса 1
@megalol
FD93 — число в дополнительном коде, означает -621 в десятичной.
Алгоритм конвертации:
#include int main()
{
short x = 0xFD93;
std::cout << float(x)/10;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы