Помощь - Поиск - Пользователи - Календарь
Полная версия: Длинные числа
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
blackhard
Volvo Когда я делал эту программу на C ты писал:
Цитата
Если б ты делал это на С++, то можно было бы привести пару ссылок на хорошие классы для работы с длинными целыми, но раз у тебя чистый С - не буду...
Теперь если тебя не затруднит можеш привести эту пару ссылок smile.gif ?
blackhard
Ну тогда возникает такой вопрос как лучше хранить длинное число?На С я хранил в short int....В общем как сделать лучше всего чтоб как меньше памяти занимало?
volvo
Посмотри библиотеку BigUnsigned (от trainer-а)
blackhard
Вобщем вот какая проблема......реализовал конструктор в который передается строка (большое число храню в векторе short в каждом элементе хранится по 4 числа) и перегрузил << и вот незнаю как учитывать нули на конце числа те если я в конструктор засуну "111100" то в векторе будет лежать [1111][0] так вот как мне учесть что на конце 2 нуля а не 3 или 4?Прикрепляю свой проек... Помогите пожалуйста smile.gif
Lapp
Цитата(blackhard @ 24.11.2008 15:37) *
если я в конструктор засуну "111100" то в векторе будет лежать [1111][0]
Странно.. а почему не в обратном порядке?
111100 -> [11][1100]
Тогда будут теряться не последние нули (значимые), а передние (незначимые)
volvo
Цитата
как мне учесть что на конце 2 нуля а не 3 или 4?
У тебя же была правильная задумка... Вот этот самый count, который ты описал в классе Longnum, должен хранить общее число записанных в вектор цифр. Тогда то, сколько нулей представляет собой в последний элемент, элементарно вычисляется, используя этот счетчик...

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