Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Количество цифр после запятой в double на С++, double просмотреть на asm 
:(
    Опции темы
Дерзающий
Дата 4.4.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



ЛЮДИ ДОБРЫЕ ПОМОГИТЕ!!!
Ни черта не смыслю в ассемблере но срочно нужна вставка на ассемблере в С++ для возвращения количества символов после запятой в переменной типа double.
PM MAIL   Вверх
dumb
Дата 4.4.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 4
Всего: 158



Код

int getsymnum(double dbl)
{
  asm mov eax, 52
}


hint: вопрос поставлен некорректно.
PM MAIL   Вверх
W4FhLF
Дата 4.4.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 3
Всего: 121



Цитата(dumb @  4.4.2007,  16:10 Найти цитируемый пост)
mov eax, 52


Их там 18 максимум на самом делеsmile 
Это 53 БИТА под мантиссу выделено. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Sartorius
Дата 4.4.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



 ИМХО очевидно, что речь идет о значащих символах после запятой в нормальном(не scintific) формате...
 А зачем на асме? Все равно парсить в строку придется - вот и вызови sprintf

Это сообщение отредактировал(а) Sartorius - 4.4.2007, 16:47
PM MAIL ICQ   Вверх
dumb
Дата 4.4.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 4
Всего: 158



Sartorius, есть подозрение, что в общем случае значащими будут все возможные.

Цитата(W4FhLF @  4.4.2007,  16:29 Найти цитируемый пост)
Их там 18 максимум на самом деле

эм. ну значит asm mov eax, 18  smile
PM MAIL   Вверх
sgi1981
Дата 4.4.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 16.3.2006

Репутация: 7
Всего: 10



У числа вещественного типа double 53 бита выделено под дробную часть мантиссы, целая часть там всегда равна 1.
У числа вещественного расширенного типа (10 байт) 64 бита выделено под всю мантиссу, включая целочисленную ее часть (у нормализованного числа целая часть мантиссы равна 1).
Отношение количества значащих цифр в двоичной системе счисления к количеству значащих цифр в десятичной системе счисления равно примерно
квадратному корню из 10.
При переводе из двоичной системы счисления к десятичной :
у числа double будет до 15...16 значащих десятичных цифр дробной части в научном формате
у числа extended будет до 18...19 значащих десятичных цифр дробной части в научном формате.


--------------------
Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства.
PM MAIL   Вверх
Дерзающий
Дата 6.4.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Спасибо за такой быстрый ответ.
Дело в том что нужно массив цифр double типа (с++ имеется в виду) привести к общему знаменателю. Количество цифр огромно и это нужно сделать за 2 прохода:
1. найти максимальное количество значащих символов после запятой, то есть из 1,23 и 1,2345, max будет 4 символа у 1,2345
2. умножить каждый элемент на 10 в степени max , в данном случае 4, то будет 12300/10000 и 12345/10000
На с++ переводить в текстовый вид и считать количество символов после запятой будет очень долго так как чисел минимум 1000000.
Короче не знаю как, посоветуйте если какието мысли есть. Только не совсем на слэнге пишите а то я только начинаю пытаться ассемблер изучать. Спасибо всем заранее!!!
PM MAIL   Вверх
JackYF
Дата 11.4.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 1
Всего: 162



Цитата(Дерзающий @  6.4.2007,  18:15 Найти цитируемый пост)
1,23 


Ага, а ошибки представления двоично-десятичные не учитываются, что ли?
Невозможно будет получить точно 1,23... будет что-то типа 1,230000008 или 1,229999997.

Так что кроме перевода в строку будет сложно что либо-сделать...

Цитата(Дерзающий @  6.4.2007,  18:15 Найти цитируемый пост)
На с++ переводить в текстовый вид и считать количество символов после запятой будет очень долго так как чисел минимум 1000000.

Хм... это не так уж и много... а какой временной лимит?



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Дерзающий
Дата 18.4.2007, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Время в принципе не ограничено, но хочется что бы было быстрее чем в с++.
А можно если не трудно привести пример кода (желательно в виде вставки в С++) для перевода числа в строку и нахождение количества значащих символов после запятой.
Заранее спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0560 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.