· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› сопроцессор

Посл.отвђт Сообщенiе


Дата: Сен 2, 2004 00:42:33

Приветсвую всех!
Народ, пожалуйста подскажите как быть с мат. сопрпоцессором. Вот как он работает с данными заранее вещ. числами это вроде как-то понятно, а вот что же делать, если надо их вводить вручную с клавиатуры? Ведь получается, что вводиться последовательность символов - то бишь уже строка. если бы эта строка не содержала буквенных символов, то тады спокойно можно было бы перевести её в число, но тут же имеется символ "е". Как же быть в таком случае с ним-то? Я же не могу ввести строку в стек и далее работать с ней. Или же может есть какой-либо другой способ для пересылки таких вот данных в стек?
Please, подскажите что именно я здесь не доганяю и как же решить эту проблему-то.
Заранее благодарю.


Дата: Сен 2, 2004 01:14:00


Дата: Сен 2, 2004 01:21:08

Black_mirror
Только в том топике кажется буковка 'e' не учитывалась ;-)


Дата: Сен 2, 2004 01:27:11

Asterix
Ну должен же кто-то в конце концов сделать функцию обратную к float_to_str. А кто это сделает кроме того, кому она нужна? ;)


Дата: Сен 2, 2004 06:49:08

В MSVC библиотеках есть cооотв. strod и fcvt


Дата: Сен 3, 2004 01:09:52

Кстати, а MSVC вообще пользуются? Я как-то сунулся: там разные версии есть и неясно, какие из них являются частью винды и являются ли. Пишу функции такого рода сам, вопросов нет, но может юзать MSVC эффективнее? (или лучше продолжать самому?)


Дата: Сен 3, 2004 17:21:55

Хех, до боли знакомая проблемка! Рассказал бы мне кто нить это в апреле, когда у меня горел курсовик.... эхъ, времени на поиски литературы не было, составил свой "деревянный" способ на скорую руку:

1. вводим строчку с клавиатуры, содержащую число.
2. преобразуем ее с конца в hex, запоминая порядок
3. Натыкаясь на точку понимаем, что это была дробная часть и пихаем ее в сопроцессор, соответсвенно умножаем на 10 в (степени_порядка*(-1)) и сохраняем в памяти.
4. преобразуем оставшийся обрывок в хекс, пихаем в сопроцессор, прибавляем сохраненное и получаем Floating point...
5. Если в строчке введен знак, учитываем это, предпринимая соответвующие действия.

Это так, вкратце (прошу прощения, алгоритм убогий и дегенеративный, но работает 100%, годится только для работ "на отмазку" в условиях недостатки времени), сырок валяется на винте ---> iw@ua.fm.

Сходным образом и обратное преобразование.

Вообще если серьезно, то это не тривиальная задача... Была ссылка на конкретную литературу, к вечеру найду - выложу.


Дата: Сен 3, 2004 17:24:50

Насчет Е - еще проще, за ней идет порядок, просто можно пихнуть в стек все то, что до Е, а потом умножить на 10 в степени то_что_после_Е


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.071