Возникла проблемка с переводом из двоичного в десятичное.
В инструкции по протоколу которым я пользуюсь написано:
Имеет знак (S), десятичный порядок (Exponent), выраженный БЕЗЗНАКОВЫМ числом и указывающий положение ДЕСЯТИЧНОЙ точки (0 для целого числа, 1 для числа с десятыми долями и т.п.) и ненормализованную мантиссу (Mantissa).
S - старший бит
Exponent - 3 следующих бита
Mantissa - остальные биты (длина мантиссы определяется размером поля данных)
Значение числа можно вычислить, как
(-1)^S * 10^(-Exponent) * Mantissa
Во всех документациях с интернета написано несколько по-другому. Но ни тем ни другим способом не получается.
Может кто знает или есть более обширная документация, помогите.
Пример:
0100 0010 0110 0000 0110 0010
должно получится (округленно) 56,0957
В инструкции по протоколу которым я пользуюсь написано:
Имеет знак (S), десятичный порядок (Exponent), выраженный БЕЗЗНАКОВЫМ числом и указывающий положение ДЕСЯТИЧНОЙ точки (0 для целого числа, 1 для числа с десятыми долями и т.п.) и ненормализованную мантиссу (Mantissa).
S - старший бит
Exponent - 3 следующих бита
Mantissa - остальные биты (длина мантиссы определяется размером поля данных)
Значение числа можно вычислить, как
(-1)^S * 10^(-Exponent) * Mantissa
Во всех документациях с интернета написано несколько по-другому. Но ни тем ни другим способом не получается.
Может кто знает или есть более обширная документация, помогите.
Пример:
0100 0010 0110 0000 0110 0010
должно получится (округленно) 56,0957