Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vaderkos
76 / 76 / 3
Регистрация: 31.03.2015
Сообщений: 435
#1

Имплементация Number - C++

24.02.2016, 13:59. Просмотров 281. Ответов 10
Метки нет (Все метки)

Хочу заимплементировать свои числа в С++. Подскажите наводящие темы и статьи. Смысл в динамическом увеличении количества битов для числа при его выходе за рамки битов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2016, 13:59     Имплементация Number
Посмотрите здесь:

Calculate total number of operations needed to convert a number from origin to sigle digit - C++
To predict person's fate, numerologist takes time of a person's life in seconds,then adds all it's digits together. If that sum of digits...

Given a year number. Output the number of days of that year - C++
Помогите решить! Given a year number. Output the number of days of that year. Example: Input: 1900 Output 365

create a number - C++
Добрый всем вечер!Затрудняюсь написать программу,которая запрашивает у пользователя число.Задача: - подсчитать количество разрядов...

Expecting variable or number - C++
Недавно начал учить c++ компилятор gcc 4.8 под Freebsd 10 появляются ошибки: expecting variable or number Это серьезные ошибки? ...

Randome number в функции - C++
Доброго времени суток! хочу поделиться негодованием по поводу работы всем знакомой функции rand() Начинал делать одно, но наткнулся...

Number of days in a year - C++
Given a year number. Output the number of days of that year. Example: Input: 1900 Output 365 Example: Input:

Number of days in a year - C++
Given a year number. Output the number of days of that year. Example: Input: 1900 Output 365 Example: Input:

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gru74ik
Модератор
Эксперт CЭксперт С++
3984 / 1731 / 194
Регистрация: 20.02.2013
Сообщений: 4,830
Записей в блоге: 21
25.02.2016, 13:04     Имплементация Number #2
Vaderkos, вам нужно создать динамически расширяемый класс целых чисел?

Добавлено через 5 минут
Vaderkos, дело в том, что C++ - это статически типизированный язык программирования. Если Вы объявите переменную определённого типа, позже Вы не сможете изменить тип этой переменной. Разве что, Вы воспользуетесь приведением типов (static_cast).
rikimaru2013
C++ Game Dev
2406 / 1100 / 238
Регистрация: 30.11.2013
Сообщений: 3,624
25.02.2016, 13:19     Имплементация Number #3
gru74ik, но есть же ж массив байт std::vector<std::uint8_t> куда можно запихнуть любое число - хранить в таком виде и возвращать в таком виде.
Vaderkos
76 / 76 / 3
Регистрация: 31.03.2015
Сообщений: 435
25.02.2016, 13:31  [ТС]     Имплементация Number #4
gru74ik, Я пишу свой простенький интерпретатор лиспа, и поэтому хочу сделать свои числа, как вариант я думал создать массив битов для этого дела или просто биты(взять какую-нибудь библиотеку). Но не знаю как лучше это дело провернуть.
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
25.02.2016, 13:32     Имплементация Number #5
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
но есть же ж массив байт
Есть же Boost.Multiprecision, откуда можно стащить cpp_int
rikimaru2013
C++ Game Dev
2406 / 1100 / 238
Регистрация: 30.11.2013
Сообщений: 3,624
25.02.2016, 13:35     Имплементация Number #6
Croessmah, так буст еще подключать надо)
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
25.02.2016, 13:46     Имплементация Number #7
rikimaru2013, так вектором тоже надо уметь пользоваться
cyber-satyr
Заблокирован
25.02.2016, 13:54     Имплементация Number #8
Vaderkos, как ни странно lisp проще всего написать на lisp'е. Хочется лезть вниз, ищи длинную арифметику.

Добавлено через 1 минуту
класс Number будет базовым, а его наследниками: Inetegеr, Float, Rational, Complex. Сам по себе он будет подезен только для предиката numberp.
Vaderkos
76 / 76 / 3
Регистрация: 31.03.2015
Сообщений: 435
25.02.2016, 14:04  [ТС]     Имплементация Number #9
cyber-satyr, Если б мог я бы написал базовый класс object или variable но как прикрутить динамическую типизацию не знаю(( Уже читаю исходники clojure

Добавлено через 15 секунд
А потом бы все от него наследовал
cyber-satyr
Заблокирован
25.02.2016, 14:39     Имплементация Number #10
Я уже говорил тебе надо таскать типы вместе с данными. Например, базовый класс NewCoolLispObject должен иметь поле с данными о типе и поле содержащее указатель на данные. Его типы могут быть только двух значений по стандарту CLHS, это atom или not atom, либо же cons и not cons, т.к. atom это все что не cons. Его наследники содержат свое поле для типа. например, если это клaсc наследник типа atom, то его типы могут быть такие как number, symbol, character, lambda. В свою очередь у наследников типа number может быть тип integer, floating, rational, complex. И так далее. Для начала нарисуй на бумаге дерево иерархии типов. Проверку типа можно осуществлять дедовым способом — битовой маской. Тебе не мешало бы досконально проработать sicp, книга завершается интерпретатором scheme.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2016, 14:40     Имплементация Number
Еще ссылки по теме:

random number<<is the code true? - C++
# include &lt;iostream&gt; using namespace std; void main () { setlocale (LC_ALL,&quot;rus&quot;); int a,b,c,d,count; a = rand()%8+2; b =...

Given natural number n. Calculate expression - C++
Помогите решить задачу плс парни! очень надо сегодня заканчивается Deadline Given natural number n. Calculate expression: Note that...

Arrays. Calculate the number of items greater than 5 - C++
народ помогите написать программу Write the program code according to the developed algorithm using dynamic arrays, user-defined...

Создать класс, допустим, с именем Number - C++
Нужно создать класс, допустим с именем Number. Далее создать одномерный массив из 10 элементов типа Number. Помогите, пожалуйста... С++...

Как в С++ Билдере прочитать HDD Serial Number? - C++
Как в С++ Билдере прочитать HDD Serial Number? подскажите ребят пожалуйста?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Vaderkos
76 / 76 / 3
Регистрация: 31.03.2015
Сообщений: 435
25.02.2016, 14:40  [ТС]     Имплементация Number #11
cyber-satyr, вот sicp я не читал -> время пришло
Yandex
Объявления
25.02.2016, 14:40     Имплементация Number
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru