Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
 Аватар для Russian_Dragon
10 / 11 / 2
Регистрация: 18.02.2012
Сообщений: 140

Преобразование сверхбольшого двоичного числа в строку-десятичное_число.

23.02.2012, 08:11. Показов 4627. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу класс для хранение и операций над числами большой размерности.
Перепробовал несколько вариантов представления числа и на данный момент решил поработать с массивом типа __int8. Массив представляет собой непрерывное число.
Но тут возникает проблема: как показать число пользователю в десятичном виде.
Т.е. как перевести очень большое двоичное число в десятичное.

П.с. Надеюсь поняли ибо, на работе, одному математику долго пришлось объяснять суть проблемы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.02.2012, 08:11
Ответы с готовыми решениями:

Преобразование числа в строку!!!!
Как в VS преобразовать число в строку!!! Через itoa что-то не выходит!!!

Преобразование числа в строку
Как преобразовать строку char *s, в которой записано число(возможно со знаком минус), в формат типа long 1) в строке десятичное число ...

Преобразование числа в строку
Всем привет. Имеется следующая функция void LiquidCrystal_I2C_PrintString(char *str){ uint8_t i=0; while(str) { ...

21
 Аватар для Russian_Dragon
10 / 11 / 2
Регистрация: 18.02.2012
Сообщений: 140
16.03.2012, 10:04  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от fasked Посмотреть сообщение

Не по теме:

Russian_Dragon, а в следующий раз в архив вставляйте только исходники. Кому ж здесь интересны объектные файлы или логи компиляции.

хорошо

Цитата Сообщение от taras atavin Посмотреть сообщение
Добавлено через 2 минуты
Ну это в любом случае так. Только какая? По основанию 256? Или 65536? Или 4294967296? А может с ещё большим?
О_о т.е. система счисления? То, тогда - 10-чная. Всё легко и просто.

На самом деле, на данный момент вижу только один недочет, не могу выкинуть стандартное исключение деления на ноль. Кто-нибудь знает?
Ночью в сети пытался найти , но без успешно((
0
 Аватар для Russian_Dragon
10 / 11 / 2
Регистрация: 18.02.2012
Сообщений: 140
22.03.2012, 21:39  [ТС]
Вот выкладываю тестовую DLL на общий суд. На данный момент ошибок вроде я не наблюдаю.
Единственное, что мне лично не нравиться, - при делении на ноль вы получите ноль, а не исключение. Так сделано по причине того, что мне не удалось найти как выкинуть стандартное исключение деления на ноль.

И вот пример работы программы:
C++
1
2
3
4
5
char* num1_str = "54308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475.54308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475";
char* num2_str = "54308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348475.54308428790203478762340052723346983453487023489987231275412390872348475543084287902034787623400527233469834534870234899872312754123908723484755430842879020347876234005272334698345348702348998723127541239087234847554308428790203478762340052723346983453487023489987231275412390872348474";
 
Bigdouble n1(num1_double, true, true, 1000, false, 1), n2(num2_double, true, false), n3;
n3 = n1 * n2;
Время расчета в тысячных секундах>> 34421 (34,421 секунды)
Результат >>
2949405437660602087849685577788193882348 4549660238134037711132674634875407162328
3433888625918112986853756418876434183114 4975661624627184095375519384112920717516
3986540395919318955404413400205181728553 8121693555875631605897498046170205496780
4984881491932392617295865890945161620301 6375743827682075374824012339521405044402
8460371834386550053336511071247687585604 9466652703477819182262311600656498835105
1477234215727860522193737596827125123003 2131626025003218156910151633026856791837
8119209973139787608049303580736078543286 7744124713163804430948565860254051055942
4085837619271482038468943923971048503126 9417457228870274928670290190887503188763
0493660496201809304655322593782567111002 6791983997086529325832597793764171583895
3934674685339596684438192476282471369306 5502768460777692398765293801741166754006
6023870775093817841562263540213391900759 5722787003766416019586940040544670814486
5749443206842055711120233524673066788160 8767538237432713327082739241895640506857
2121847882027075148586561297621376866045 5278486613620807669304706069393740164005
2933916772500055807081876978267312425990 0158876096713771631930268143222384075839
6413550316542377090489097003318669694452 4122837194466796122439474760002032704482
6002877202710881580647323501295153190275 7003324101656565444164424053933546337731
4932666157975977308137894096831953985208 0873656128326815403384492387742715445073
5304631114980635003388207638006009074681 2489206752835438437640641085987847807972
8485733118835850286242702679114671651463 6664222665129418907530114942592164299221
2279596633444780970046255412328721327661 5118196729072382077211480025130572334298
0646859260977839173193776233056510697455 0614649211830795751039916708932784893755
1909422934058831138451509575237215691634 6450111476949261083567505101584284100669
4923886043846508453019369918348106942720 2858605458202225309413377259045578894094
9241507330801524145061568874292876794983 2836945517242470417421665399585463650620
8583678371775030805865467729420747166572 5071563575797751905076003150508636583259
8488492737438058663858210638593290065673 4173838410566542650396414798682520195466
9010649598295674110614072974989254992491 6057082150284193014105191541660058324053
2733137582634855884305092601142154762165 0171971229527862887853215583146717060105
46556387936209302097927038161150.0597494 4495053423404637284224016080645266764217
0293676781844325287006499475276603732055 8023953010133360455279986972046122526054
2709380192401498353058757958769264326873 6042704829914707179875215684430357443509
7796497230840912185482726258446195204920 4549427387704308842806443949000319149610
8623066412196188190018786139357918414759 5533402001182530454490858649498640522063
8909650121591377073795381886780336249515 9558616959981398149386418737486562311205
3163968008232845358801119158831793470346 5471937649274196952909233657398473655894
2670308830821902068147631078997096247715


П.с. Если кому нужно, то пользуетесь.
П.п.с.
А, чуть не забыл, пара слов об конструкторе:
Bigdouble(typeNumber number, bool isRounding = true, bool isFractionSize = true, size_t fractionSize = 16, bool isBlockingCircle = false, size_t circleCount = 2)
number - Число. Принимает массивы из char или просто число типа int.
isRounding - округление чисел. Например, у нас в ответе число 2,123[55555]. Если вы скажите isRounding = true, то получите 2,124, а если isRounding = false 2,123.
Так как данный класс предназначен для расчетов чисел любой длинны в него введены "системы защиты" от зацикливания.
isFractionSize - Включает ограничение на количество чисел после запятой.
fractionSize - количество чисел после запятой.
isBlockingCircle - Включает ограничение на количество блоков повторяющихся чисел.
circleCount - количество блоков повторяющихся чисел.
Пара слов о системе блокировке повторяющихся чисел. Например у нас при делении получается число:
2, 0 127 127 127 127 ..., если мы поставим ограничение типа ..., true, 2,); То в ответе мы получим "2, 0 127 127 127".
Вложения
Тип файла: rar BigDoubleDLL.rar (95.0 Кб, 26 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.03.2012, 21:39

Преобразование числа в строку
Подскажите как преобразовать число в строку, пожалуйста!

Преобразование числа в строку
Всем доброго времени суток, помогите пожалуйста получить из числа 12345679 (int), строку string = {1, 2, 3, 4, 5, 6, 7, 8, 9}. т.е....

Преобразование целого числа в строку
Написать функцию, которая выполняет преобразование целого числа в строку. Проиллюстрировать работу функции примером.

Преобразование двоичного кода в ASCII
Ребята, у меня вопрос. Вот я, например, имею строку "10011001" или подобную из восьми единиц и нулей. Вопрос: как преобразовать эту строку...

Преобразование двоичного кода в текст
есть код: struct home { char name; long number; int dom; int kvartira; };


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru