IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> Длинные числа, C++
blackhard
сообщение 1.11.2008 15:41
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 151
Пол: Мужской
Реальное имя: иван

Репутация: -  0  +


Volvo Когда я делал эту программу на C ты писал:
Цитата
Если б ты делал это на С++, то можно было бы привести пару ссылок на хорошие классы для работы с длинными целыми, но раз у тебя чистый С - не буду...
Теперь если тебя не затруднит можеш привести эту пару ссылок smile.gif ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
blackhard
сообщение 6.11.2008 15:53
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 151
Пол: Мужской
Реальное имя: иван

Репутация: -  0  +


Ну тогда возникает такой вопрос как лучше хранить длинное число?На С я хранил в short int....В общем как сделать лучше всего чтоб как меньше памяти занимало?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 6.11.2008 16:09
Сообщение #3


Гость






Посмотри библиотеку BigUnsigned (от trainer-а)
 К началу страницы 
+ Ответить 
blackhard
сообщение 24.11.2008 15:37
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 151
Пол: Мужской
Реальное имя: иван

Репутация: -  0  +


Вобщем вот какая проблема......реализовал конструктор в который передается строка (большое число храню в векторе short в каждом элементе хранится по 4 числа) и перегрузил << и вот незнаю как учитывать нули на конце числа те если я в конструктор засуну "111100" то в векторе будет лежать [1111][0] так вот как мне учесть что на конце 2 нуля а не 3 или 4?Прикрепляю свой проек... Помогите пожалуйста smile.gif

Сообщение отредактировано: blackhard - 24.11.2008 15:38


Прикрепленные файлы
Прикрепленный файл  C__2LongNumTarasov.rar ( 64.69 килобайт ) Кол-во скачиваний: 138
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 24.11.2008 16:14
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(blackhard @ 24.11.2008 15:37) *
если я в конструктор засуну "111100" то в векторе будет лежать [1111][0]
Странно.. а почему не в обратном порядке?
111100 -> [11][1100]
Тогда будут теряться не последние нули (значимые), а передние (незначимые)


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.11.2008 16:46
Сообщение #6


Гость






Цитата
как мне учесть что на конце 2 нуля а не 3 или 4?
У тебя же была правильная задумка... Вот этот самый count, который ты описал в классе Longnum, должен хранить общее число записанных в вектор цифр. Тогда то, сколько нулей представляет собой в последний элемент, элементарно вычисляется, используя этот счетчик...

Кстати, использовать std::vector для хранения цифр при реализации длинной арифметики можно только при желании огрести потом кучу проблем со скоростью.

Сообщение отредактировано: volvo - 24.11.2008 17:09
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 5:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"