|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.08.2009, 11:15 | #1 |
Регистрация: 11.06.2009
Сообщений: 8
|
Задать разрядность числа в конструкторе
Здравствуйте.
Есть проблема - не могу придумать решение, нужно работать с целыми числами разрядностью до пятидесяти знаков. А разрядность необходимо указать в конструкторе класса, вот и думаю как лучше это реализовать. Или как создать тип данных такого размера. Возможно есть другой подход к этой проблеме? Направьте на пусть истинный=) Возможно просто хранить число в виде массива цифр? Спасибо. Последний раз редактировалось zx11; 18.08.2009 в 11:23. |
18.08.2009, 11:32 | #2 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,336
|
конечно как массив. вот только придется повторно реализовать все математические операции. можно заюзать готовую библиотеку для этих целей - gmp, Либа написана на Си, поэтому можно создать свои классы-оболочки над этой библиотекой. Как там указывается разрядность - не знаю, читай ман (возможно никак не указывается, все основано на связанных списках и тп).
у меня в linux-е она идет в комплекте (ну или зависела от какого то пакета, не могу точно сейчас сказать)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
18.08.2009, 12:00 | #3 |
Регистрация: 11.06.2009
Сообщений: 8
|
Спасибо за совет по поводу массива, а вот готовую либу я юзать не могу, придётся самому написать. Если кто-то сможет ещё что-то посоветовать буду благодарен.
|
18.08.2009, 12:16 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,520
|
Ключевое слово: "длинная арифметика"
|
18.08.2009, 13:20 | #5 | |
Пользователь
Регистрация: 15.08.2009
Сообщений: 37
|
Цитата:
Листинг 9.18. Класс «длинных» целых чисел Код:
Код:
Конструкторов всего два: конструктор копирования создается автоматически, а конструктор без аргументов просто не нужен, так как в конструкторе инициализации задан аргумент по умолчанию. Реализацию покажем на примере конструктора с аргументом-целым (листинг 9.19). Код:
Код:
Код:
Код:
Вектор хорош тем, что он во-первых, стандартный. Во-вторых, сам управляет своей памятью. А если требуется явно задать длину, то в скобках задается. |
|
19.08.2009, 19:01 | #6 |
Регистрация: 11.06.2009
Сообщений: 8
|
Всем спасибо за советы.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Узнать разрядность процессора | dimonbest | Общие вопросы Delphi | 16 | 01.10.2011 09:15 |
Инициализация массивов в конструкторе. | jojahti | Общие вопросы C/C++ | 7 | 27.07.2009 13:30 |
Разрядность чисел | obake | Microsoft Office Excel | 1 | 24.02.2009 22:46 |
можно ли автоматически изменить разрядность числа | Help Me23 | Microsoft Office Excel | 1 | 11.02.2009 15:26 |
разрядность кода | satanatas | Помощь студентам | 4 | 11.01.2008 18:15 |