dsp 0 2 августа, 2005 Опубликовано 2 августа, 2005 · Жалоба подскажите пожалуйста как происходит масштабирование целого числа с плавающей точкой в дробное с фиксированной Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AA55 0 3 августа, 2005 Опубликовано 3 августа, 2005 · Жалоба IMHO: 314E-2=314/100; 314E3=314*1000 i.e. делением/умножением (или как частный случай - сдвигами) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bve 1 3 августа, 2005 Опубликовано 3 августа, 2005 · Жалоба подскажите пожалуйста как происходит масштабирование целого числа с плавающей точкой в дробное с фиксированной <{POST_SNAPBACK}> Фиксированная точка - понятие относительное. Ее Вы размещаете там, где Вам надо. При этом у Вас определяется диапазон допустимых значений, например: Пусть ваши числа - 16-тиразрядные. Положим, что старший разряд - знаковый, фиксированная точка размещается между 15-м ( считаем с нуля ) разрядом и 14-м. Тогда чисел, больших 1 Вам не получить.=> младший разряд будет иметь вес 1/2**15. Поделив Ваши числа на этот вес , Вы получите искомое представление. У чисел с плавающей точкой тоже есть цена младшего разряда мантиссы. Она задана аналогично вышесказанному. Соответственно, число в плавающей точке можно преобразовать в фиксированную, если домножить на отношение весов младших разрядов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eugeno 0 4 августа, 2005 Опубликовано 4 августа, 2005 · Жалоба Самый быстрый способ - плавающее число "распотрашивается" на мантису и экспаненту (в С есть соответствующие функции для float и double). Далее происходит сдвиг мантисы на значение, зависящее от экспаненты и положения фиксированной точки. Всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться