|
Алгоритм примерно такой. берем простой случай - число +-XX.YY - XX и YY - это десятичные цифры. требуемая точность - 32 бита мантиссы.
1) XX преобразуем в один байт, YY - в другой.
2) YY преобразуем к формату Q.31. Для этого его надо умножить (2^32)/100. То есть сделать 40-битным, собрав из полученного байта и 32-х нулей, затем поделить на 100. Результат по определению не превысит 32-х бит.
4) собираем новое 40-битное число, пристыковав целочисленный байт слева к полученным после деления 32-м битам.
5) сдвигаем влево все эти 40 бит до тех пор, пока не "вылезет" старший бит, равный единице. При этом на каждом шаге уменьшаем экспоненту на 1.
6) корректируем экспоненту (сколько-то там к ней прибавить надо, константу), что-бы результирующее число имело правильный порядок. Это почитать надо IEEE-754, не помню точно, за что там нулевой порядок принят.
Вот и все. Кажется так.
E-mail: info@telesys.ru