сопроцессор

Тема в разделе "WASM.ASSEMBLER", создана пользователем Tiana, 2 сен 2004.

  1. Tiana

    Tiana New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2004
    Сообщения:
    1
    Адрес:
    Uzbekistan
    Приветсвую всех!

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

    Please, подскажите что именно я здесь не доганяю и как же решить эту проблему-то.

    Заранее благодарю.
     
  2. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Black_mirror

    Только в том топике кажется буковка 'e' не учитывалась :derisive:
     
  4. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    Asterix

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

    zzzyab New Member

    Публикаций:
    0
    Регистрация:
    13 май 2004
    Сообщения:
    115
    В MSVC библиотеках есть cооотв. strod и fcvt
     
  6. Foamplast

    Foamplast New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2003
    Сообщения:
    80
    Адрес:
    Russia
    Кстати, а MSVC вообще пользуются? Я как-то сунулся: там разные версии есть и неясно, какие из них являются частью винды и являются ли. Пишу функции такого рода сам, вопросов нет, но может юзать MSVC эффективнее? (или лучше продолжать самому?)
     
  7. Inked Wedge

    Inked Wedge New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2004
    Сообщения:
    33
    Адрес:
    Ukraine
    Хех, до боли знакомая проблемка! Рассказал бы мне кто нить это в апреле, когда у меня горел курсовик.... эхъ, времени на поиски литературы не было, составил свой "деревянный" способ на скорую руку:



    1. вводим строчку с клавиатуры, содержащую число.

    2. преобразуем ее с конца в hex, запоминая порядок

    3. Натыкаясь на точку понимаем, что это была дробная часть и пихаем ее в сопроцессор, соответсвенно умножаем на 10 в (степени_порядка*(-1)) и сохраняем в памяти.

    4. преобразуем оставшийся обрывок в хекс, пихаем в сопроцессор, прибавляем сохраненное и получаем Floating point...

    5. Если в строчке введен знак, учитываем это, предпринимая соответвующие действия.



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



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



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

    Inked Wedge New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2004
    Сообщения:
    33
    Адрес:
    Ukraine
    Насчет Е - еще проще, за ней идет порядок, просто можно пихнуть в стек все то, что до Е, а потом умножить на 10 в степени то_что_после_Е