Въздушен въпрос
Разглеждате архива на форума.
Автор: Максим ()
Дата: 26/04/2005 15:45
Има номер в плуващ формат.
На индикатора се показва като 1.23232 и т.н. 15 знака след
запетая.
Въпрос:
Възможно ли е за тази разширена стойност обратно
възстановете числото да плава, така че байтовете в оригиналния номер
съвпадна с байтовете в възстановените и така беше за всеки
числа?
Автор: bzx ()
Дата: 26/04/2005 16:13
един. Има номер в плуващ формат. Той се показва на индикатора като 1.23232 и
и т.н. 15 знака след десетичната запетая.
За показване на числа с точност до 15 цифри след запетая, плаващият формат не е
ще го направя. Нуждаете се от двоен 64bit.
2. Въпрос: Възможно ли е да възстановите номера обратно от тази разширена стойност
в плувка, така че байтовете в оригиналния номер да съвпадат с байтовете в възстановените и
това беше случаят за всякакви числа?
Неясен. Въвеждате стойности от клавиатурата?
Автор: WDT ()
Дата: 26/04/2005 16:14
Така че 1.23232 вече е изглед с фиксирана точка. Като цяло, когато отиваш
точността вече е необратимо загубена. И загубеното не може да се върне:).
Автор: Максим ()
Дата: 26/04/2005 16:23
всъщност въпросът е:
възможно ли е да конвертирате от плувка в текст и обратно без загуба
прецизност за всякакви числа?
Броят на показаните символи е ограничен до 15 или колко
необходимо, но разбира се.
Автор: Максим ()
Дата: 26/04/2005 16:28
> 2. Въпрос: Възможно ли е за тази разширена стойност
обратно
> номер за възстановяване
> в плувка, така че байтовете в оригиналния номер да съвпадат
байта
> в възстановен и
> това беше случаят за всякакви числа?
> Не е ясно. Въвеждате стойности от клавиатурата?
така да бъде:
има устройство с индикатор.
на него се показва число с плаваща запетая, с максимум
точност, не знам колко е за float, например 10 знака.
Мога ли недвусмислено да възстановя стойността с този номер
плуват до малко, т.е. така че да получа 4 байта същите
както в устройството, преди да се покаже на индикатора?
Автор: bzx ()
Дата: 26/04/2005 16:39
от форматът на дисплея на индикатора и форматът на числата са различни - включен
индикаторът е десетичен, а в float е двоичен, т.е. минимална грешка на такива
преобразуване 2 бита.
Автор: Максим ()
Дата: 26/04/2005 16:42
Автор: bzx ()
Дата: 26/04/2005 16:44
грешката ще бъде log2 (10) бита
Автор: WDT ()
Дата: 26/04/2005 17:02
Няма значение какво представяне имат числата: двоично или двоично-десетично, като
и на какъв тип дисплей се показва всичко. От седем или повече сегмента всичко е възможно
възстановете се без загуба. Това не е проблемът. По време на преобразуването се появяват загуби
плувка, за да се поправи например за числа близо до 0. Така че 1.234567 E-20 =
0,00000000000000000001 за 20 фиксирани знака. Ясно е, че загуби могат да възникнат при всеки
фиксираща дължина?
Автор: bzx ()
Дата: 26/04/2005 17:09
Вие си противоречите: кажете, че форматът на презентацията и форматът на показване
не е важно, но в същото време твърдите, че има загуби от преобразуване. Вие
решете сами: има ли загуби по време на трансформацията.
Автор: Бил ()
Дата: 26/04/2005 17:10
точността на числата е 6 знака след десетичната запетая. Тези. номер 1.234567 все още може да бъде
да образоваш. И число, да речем 1.23456789, вече не може да бъде представено. Ще бъде закръглено.
За по-голяма точност (до 15 десетични цифри) трябва да използвате двойния тип.
Автор: WDT ()
Дата: 26/04/2005 17:18
Веднага бях решен: проблемът не е в показването на номера - между другото, можете
дисплей както в старите дни - със светодиоди в двоична форма:). Ще се повторя за трети път -
проблемът със загубата на прецизност е свързан с механизма за преобразуване само на числа с
с плаваща запетая към фиксирана. Това е основен момент. Може да строи
логиката не работи в двоична система - но тези загуби ще останат.
И всички ограничения са, че плаващият тип не може да бъде 15 знака. Това сте вие от