Двоичное в десятичное

CrossLive

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

Во всех документациях с интернета написано несколько по-другому. Но ни тем ни другим способом не получается.
Может кто знает или есть более обширная документация, помогите.
Пример:
0100 0010 0110 0000 0110 0010
должно получится (округленно) 56,0957
 

Aliens

Меня знают многие ;-)
#2
только вчера такую фигню реализовал, только у меня числа двоичные, т.е. по основнию 2, а не 10.
зы: чуть моск не сломал. удачи ;)
зы2: Протокол ОВЕН если не ошибаюсь :))
 

CrossLive

Гость города
#3
Да! ОВЕН!
Мля ну скажи как, может у меня тоже 2, а не 10, просто в доке так написано. Мне сам алгоритм хотя бы, прогу я сам напишу.