nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 16 Apr 2024 06:47



Reply to topic  [ 4 posts ] 
StrToFloat() & FloatToStr() 
Author Message
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Может кто-нибудь объяснить как преобразовать вещественное число в строку - StrToFloaf() - и обратно - FloatToStr() - без последовательного деления и умножения целой и дробной частей ? Чем понятнее объясните, тем быстрее будет выпущен калькулятор для Flex-а :wink:


26 Jan 2004 01:55
Profile
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Post 
По сабжу, к сожалению, пока ничего дельного не попадалось.


P.S. Когда дело дойдет до правки библиотечных функций SOLID C под Estex,
то для "printf" хочу прикрутить твою процедуру (что ты кидал как-то на
форуме ПП). Наткнулся на глюки в твоем "printf". Это относится к выводу
знаковых чисел. У тебя заюзано "res 7,a", я кидаю уже по-фиксенные проце-
дурки.

Quote:
Long2DEC:
ld a,(de) ; ст.разряд
ld l,a
inc de
ld a,(de)
ld h,a
bit 7,a
jp z,uLong2DEC_ ; сохр. старший и загр. мл.разряд
inc de
ld a,(de) ; мл.разряд
ld c,a
inc de
ld a,(de)
ld b,a
; обраб. мл.разряд
xor a
sub c
ld c,a
ld a,0
sbc a,b
ld b,a
; обраб. ст.разряд
ld a,0
sbc a,l
ld l,a
ld a,0
sbc a,h
ld h,a
push hl
ld l,c
ld a,b
;
push af
ld a,"-"
call OutputSymbl
...

Кста, у тебя в этой процедуре проверка
Quote:
bit 7,a
jp z,uLong2DEC_

делается для младшего разряда, вместо старшего.

Положение метки "uLong2DEC_" в твоем сорце, для моего куска надо
пересмотреть. Адрес перехода не совпадает с твоим.


Далее, никаких особенностей нет.
Quote:
Word2DEC:
ld a,(de)
ld l,a
inc de
ld a,(de)
bit 7,a
jr z,uWord2DEC_
;res 7,a
;
ld h,a ;--
xor a ;
sub l ;
ld l,a ;
ld a,0 ;
sbc a,h ;--
;
push af
ld a,"-"
call OutputSymbl
pop af
jr uWord2DEC_


Byte2DEC:
ld h,0
ld a,(de)
bit 7,a
jr z,uByte2DEC_
;res 7,a
;
ld l,a ;--
xor a ;
sub l ;--
;
push af
ld a,"-"
call OutputSymbl
pop af
jr uByte2DEC_

_________________
Vasil Ivanov
vasil-i@yandex.ru


05 Feb 2004 15:36
Profile
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Post 
Quote:
По сабжу, к сожалению, пока ничего дельного не попадалось.


Мне тоже. Не хочется верить что такая функция реализуется делением :P

Quote:
Наткнулся на глюки в твоем "printf".


Удивительно что только ты о них сказал :D Там кое-что следует вообще переписать. Кроме того, я кажется так и не сделал удаление незначащих нулей. Постараюсь заняться в выходной.


06 Feb 2004 04:09
Profile
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Post 
Mac Buster wrote:
Quote:
Наткнулся на глюки в твоем "printf".


Удивительно что только ты о них сказал :D Там кое-что следует вообще переписать. Кроме того, я кажется так и не сделал удаление незначащих нулей. Постараюсь заняться в выходной.


Да, у тебя не прикручено удаление ведущих нулей. Брошу тебе мой вариант для SOLID C. Только его еще надо чуть с`оптимизить (где стоят "dec hl;", "inc hl;"). Только это черновой тестовый вариант для CP/M.
Хотел бросить сюда, но здесь все форматирование текста сбивается.
Поэтому брошу на твой e-mail.

_________________
Vasil Ivanov
vasil-i@yandex.ru


09 Feb 2004 14:23
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 4 posts ] 

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.