2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Умножение чисел с плавающей запятой с…
Сообщение05.10.2013, 00:15 
Заслуженный участник


27/04/09
28128

(Оффтоп)

Alexu007 в сообщении #770471 писал(а):
Дело не в калькуляторе, а в алгоритмах длинной арифметики, ссылку на которую я дал. Это же почти готовое решение для автора темы. Там в структуре хранится массив цифр длинного числа, и в отдельной переменной количество цифр.
Надеюсь, не десятичных.

 Профиль  
                  
 
 Re: Умножение чисел с плавающей запятой с…
Сообщение05.10.2013, 08:32 


24/05/09

2054

(Оффтоп)

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

А вообще - да. В каждой int одна десятичная или шестнадцатиричная цифра. Так проще.

 Профиль  
                  
 
 Re: Умножение чисел с плавающей запятой с…
Сообщение05.10.2013, 13:56 
Заслуженный участник


27/04/09
28128

(Оффтоп)

Ну и зря. Можно спокойно там держать и цифры в основании 100, 1000 и даже 10000, не вредя контролю переполнения.

Alexu007 в сообщении #770854 писал(а):
К тому же современные компиляторы выделяют память иначе, чем программист. Я в одной из програм использовал статичный массив в миллион int - программа вовсе не разбухала до "лишних" 4-х мегабайт. Можно в программе записывать в файл по 1 байту - всё равно будет где-то копиться, и сбрасываться в порциями.
Лучше бы вы всё-таки знали, что именно там происходит и почему это сработало. Компиляторы пишут люди, компилятор не сможет покрыть все оплошности!

 Профиль  
                  
 
 Re: Умножение чисел с плавающей запятой с…
Сообщение05.10.2013, 16:11 
Заслуженный участник


09/09/10
3729

(Оффтоп)

Alexu007 в сообщении #770854 писал(а):
Я в одной из програм использовал статичный массив в миллион int - программа вовсе не разбухала до "лишних" 4-х мегабайт.

А с чего бы? Секция .bss в исполняемом файле только упоминается, но физически не хранится — все равно там одни нули. Это изобретение древнее, кстати — уже COFF-формат умел такое, а он был создан для UNIX System V.

Alexu007 в сообщении #770854 писал(а):
Можно в программе записывать в файл по 1 байту - всё равно будет где-то копиться, и сбрасываться в порциями.

Ага. Вот только есть языки, где стандартные библиотеки предлагают по умолчанию небуферизованный вывод.

arseniiv в сообщении #770922 писал(а):
Ну и зря. Можно спокойно там держать и цифры в основании 100, 1000 и даже 10000, не вредя контролю переполнения.

Между прочим, так оно и есть — пройдите по той ссылке, выберите "Предисловие" и пролистайте ближе к концу.

 Профиль  
                  
 
 Re: Умножение чисел с плавающей запятой с…
Сообщение05.10.2013, 16:55 


24/05/09

2054
Всё так. Но для начала я хотел реализовать как можно проще - с основанием 10. Затем выяснилось, что простой заменой 10 на 16 программа может работать и с hex числами (там немного поменять пришлось, практически только ввод-вывод). Дальше переписывать я уже не стал.

Программа написана с учебной целью, это я среду программирования Qt так осваиваю потихоньку.

Кстати, для плавающей запятой реализация с osn = 10 лучше подходит, иначе придётся думать, как впихнуть запятую "в середину" int.

 Профиль  
                  
 
 Re: Умножение чисел с плавающей запятой с…
Сообщение05.10.2013, 18:49 
Заслуженный участник


27/04/09
28128
Joker_vD в сообщении #770977 писал(а):
Между прочим, так оно и есть — пройдите по той ссылке, выберите "Предисловие" и пролистайте ближе к концу.
Сгубит меня лень. :-( Надо было сначала посмотреть, а не верить на слово Alexu007.

Alexu007 в сообщении #770986 писал(а):
иначе придётся думать, как впихнуть запятую "в середину" int
$10^p = 100^{p/2} = 1000^{p/3}$ и т. д., и для хранения $p$ умножать соответственно.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: artur_k


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group