Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство по программированию
×

FROM_EUHI - преобразование из EUHI в REAL


Назначение.
Функция FROM_EUHI() преобразовывает целое значение из формата EUHI в 32-разрядное вещественное число.
 
Входные параметры.
  • in1 - тип данных INTEGER (целое число в формате EUHI).
  • in2 - тип данных REAL (возвращаемое значение в случае ошибки).
     
Выходной параметр.
  • out - тип данных REAL (32-разрядное вещественное значение).
 
Алгоритм преобразования.
Рассмотрим алгоритм преобразования из формата EUHI на примере целого числа 18055:
  • Битовая маска исходного 16-битного числа в формате EUHI состоит из старшего бита для определения знака, 6 бит экспоненты и 9 младших бит мантиссы:
  • Первый знаковый бит определяет знак числа: 0 - положительное число, 1 - отрицательное.
  • Битовая маска мантиссы переводится в десятичный вид: 0100001112 = 13510.
  • Битовая маска экспоненты переводится в десятичный вид: 1000112 = 3510.
  • Итоговое вещественное число рассчитывается по формуле: <мантисса>/2exp-31+1 = 135/32 = 4.21875, где "exp-31" - обратное смещение экспоненты.
    Описание синтаксиса.
На языке ST
На языках FBD/LD
out := FROM_EUHI(in1, in2)
Примеры:
//out = 20.21875
FROM_EUHI(18055, 3.0);
 
//out = -20.21875
FROM_EUHI(50823, 3.0);
Примеры: