Реализацию только этих пяти операций можно и самому накатать за часок.23.09.04 19:19 Число просмотров: 1536 Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 23.09.04 19:27 Количество правок: 2
Например сложение: "меньшее" (по экспоненте) число двигается побиттово N раз вправо, где N разница между экспонентами, складываются, если получили конечный перенос, то сдвигаем все еще на 1 бит вправо, устанавливаем старший бит, увеличиваем на 1 порядок.
Вычитание - аналогично.
Умножение - по правилам математики: перемножаем мантиссы, складываем экспоненты, нормализуем.
Деление - все то же.
С корнем - подумать надо.
Да, если (думаю наверняка) мантиссы со знаковым битом, то все еще чуть чуть усложнится.
Нужен не эмулятор FPU, а именно C-библиотека для вычислений (+, -, *, /, sqrt) с плавающей точкой.
Совместимость со стандартными форматами IEEE совершенно не нужна, что-нибудь типа 48-56 бит на мантиссу, и 6-8 бит на порядок будет в самый раз.
Реализацию только этих пяти операций можно и самому накатать за часок.23.09.04 19:19 Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 23.09.04 19:27 Количество правок: 2
Например сложение: "меньшее" (по экспоненте) число двигается побиттово N раз вправо, где N разница между экспонентами, складываются, если получили конечный перенос, то сдвигаем все еще на 1 бит вправо, устанавливаем старший бит, увеличиваем на 1 порядок.
Вычитание - аналогично.
Умножение - по правилам математики: перемножаем мантиссы, складываем экспоненты, нормализуем.
Деление - все то же.
С корнем - подумать надо.
Да, если (думаю наверняка) мантиссы со знаковым битом, то все еще чуть чуть усложнится.
Накатать конечно можно, но IMHO не за часок23.09.04 19:53 Автор: leo <Леонид Юрьев> Статус: Elderman
Возни на самом деле не мало. И у мантис могут быть разные знаки и у экспонент, over/under нужно отлавливать и т.д. А с корнем не сложно - из мантиссы по а-ля ньютону, экспоненту пополам, если нечетная домножить на sqrt(2) и нормализовать.
А главное - не интересно просто рутина. Но пожалуй придеться написать...