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);
|
Примеры:
![]() ![]() |



