Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447

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

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

Студворк — интернет-сервис помощи студентам
Хочу заимплементировать свои числа в С++. Подскажите наводящие темы и статьи. Смысл в динамическом увеличении количества битов для числа при его выходе за рамки битов.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2016, 13:59
Ответы с готовыми решениями:

Calculate total number of operations needed to convert a number from origin to sigle digit
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
Помогите решить! Given a year number. Output the number of days of that year. Example: Input: 1900 Output 365

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

10
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
25.02.2016, 13:04
Vaderkos, вам нужно создать динамически расширяемый класс целых чисел?

Добавлено через 5 минут
Vaderkos, дело в том, что C++ - это статически типизированный язык программирования. Если Вы объявите переменную определённого типа, позже Вы не сможете изменить тип этой переменной. Разве что, Вы воспользуетесь приведением типов (static_cast).
1
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
25.02.2016, 13:19
gru74ik, но есть же ж массив байт std::vector<std::uint8_t> куда можно запихнуть любое число - хранить в таком виде и возвращать в таком виде.
2
 Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
25.02.2016, 13:31  [ТС]
gru74ik, Я пишу свой простенький интерпретатор лиспа, и поэтому хочу сделать свои числа, как вариант я думал создать массив битов для этого дела или просто биты(взять какую-нибудь библиотеку). Но не знаю как лучше это дело провернуть.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
25.02.2016, 13:32
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
но есть же ж массив байт
Есть же Boost.Multiprecision, откуда можно стащить cpp_int
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
25.02.2016, 13:35
Croessmah, так буст еще подключать надо)
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
25.02.2016, 13:46
rikimaru2013, так вектором тоже надо уметь пользоваться
0
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
25.02.2016, 13:54
Vaderkos, как ни странно lisp проще всего написать на lisp'е. Хочется лезть вниз, ищи длинную арифметику.

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

Добавлено через 15 секунд
А потом бы все от него наследовал
0
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
25.02.2016, 14:39
Я уже говорил тебе надо таскать типы вместе с данными. Например, базовый класс NewCoolLispObject должен иметь поле с данными о типе и поле содержащее указатель на данные. Его типы могут быть только двух значений по стандарту CLHS, это atom или not atom, либо же cons и not cons, т.к. atom это все что не cons. Его наследники содержат свое поле для типа. например, если это клaсc наследник типа atom, то его типы могут быть такие как number, symbol, character, lambda. В свою очередь у наследников типа number может быть тип integer, floating, rational, complex. И так далее. Для начала нарисуй на бумаге дерево иерархии типов. Проверку типа можно осуществлять дедовым способом — битовой маской. Тебе не мешало бы досконально проработать sicp, книга завершается интерпретатором scheme.
1
 Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
25.02.2016, 14:40  [ТС]
cyber-satyr, вот sicp я не читал -> время пришло
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.02.2016, 14:40
Помогаю со студенческими работами здесь

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

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

Number of days in a year
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
Given a year number. Output the number of days of that year. Example: Input: 1900 Output 365 Example: Input:

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru