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

Перевод длинного двоичного числа в десятичную СС - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
gGrn-7DA
мну довольно <(-__-)l
 Аватар для gGrn-7DA
203 / 192 / 1
Регистрация: 17.01.2010
Сообщений: 2,391
Завершенные тесты: 1
24.09.2010, 15:38     Перевод длинного двоичного числа в десятичную СС #1
Как можно перевести число из двоичной системы счисления в десятичную ели число длиной в 100-300 знаков...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
24.09.2010, 17:09     Перевод длинного двоичного числа в десятичную СС #2
Как вы храните это число?
gGrn-7DA
мну довольно <(-__-)l
 Аватар для gGrn-7DA
203 / 192 / 1
Регистрация: 17.01.2010
Сообщений: 2,391
Завершенные тесты: 1
24.09.2010, 17:47  [ТС]     Перевод длинного двоичного числа в десятичную СС #3
bool[]

Добавлено через 9 минут
точнее пока никак...думаю стоит ли браться, но все остальное уже продумал. осталось решить проблему с чтением числа с клавиатуры и выводом на экран.
хотя естественно можно выводить и в одной из 2^k-ричных систем счисления, но это как то не очень наглядно=)
выбрал представление такое в силу потребности реализации деления.

при умножении покусочно(сектор из 30 символов) буду переводить в ulong, а там по мат формулам перевод идет довольно резво, но только если итоговое число вмещается в встроенный тип.

Программа должна будет оперировать с числами длинной 1000+ символв в 2-ой системе счисления.

Да, знаю что есть уже подобные реализации и даже спец программы, в которых гораздо легче реализовывать алгоритмы

но есть жедание самому сделать, да и препод сказал что было бы не плохо. лишний плюс к курсовику не бывает=)

это не курсовик, курсовик по криптографии...
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
24.09.2010, 17:57     Перевод длинного двоичного числа в десятичную СС #4
gGrn-7DA, хранить в bool бесмыслленно, лучше уж в uchar. да и переводить в ulong потом проще будет.
а не очень наглядно будет вводить строки по 300 символов
gGrn-7DA
мну довольно <(-__-)l
 Аватар для gGrn-7DA
203 / 192 / 1
Регистрация: 17.01.2010
Сообщений: 2,391
Завершенные тесты: 1
24.09.2010, 18:02  [ТС]     Перевод длинного двоичного числа в десятичную СС #5
не волнуйся экран широкий, а шрифт и подправить можно...

а на счет простоты перевод в ulong буду проводить при помоши операторов >> и <<. не сказал бы что сложно, да и скоростью не уступают думаю,

пока живешь нужно все повидать=)

Добавлено через 50 секунд
да и скорее всего все будет вводиться и выводиться из файла...
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
24.09.2010, 18:03     Перевод длинного двоичного числа в десятичную СС #6
gGrn-7DA, да я как раз про то, что bool по своему смыслу все таки должен хранить результат логических операций. а 0 или 1 в данном случае число. я бы понял, если бы тип bool занимал 1 бит в памяти, а так... лучше все таки char.
переводить будет проще в том смысле, что в char массив можно считывать сразу. а потом уже двигать.

C
1
2
3
4
5
char a[];
// чтение строки в char-массив 
ulong n;
// цикл преобразования сдвигами в ulong
n <<= a[i] - '0';
лишнее преобразование из строки в bool, зачем оно?
gGrn-7DA
мну довольно <(-__-)l
 Аватар для gGrn-7DA
203 / 192 / 1
Регистрация: 17.01.2010
Сообщений: 2,391
Завершенные тесты: 1
24.09.2010, 18:46  [ТС]     Перевод длинного двоичного числа в десятичную СС #7
не знаю еще....

и в правду не очень удобно постоянно переводитьчисла туда обратно.
я сначала хотел реализовать методику 10 битового числа хранящего трех значные десятичные числа, это удобно для вывода дечятичных чисел на экран, хотя можно было и 20, и 30, и 60 битовые реализовать и запихать их в инты и лонги..но это детали...

при этом довольно сложно реализовать деление, которое при битовом(буловом) представлении реализуется довольно просто... мне всего то остаток нужно вычислить...

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

не сердчайте на мои формулировки, просто немного тяжело сейчас мне мысли материализовывать свои=)

Добавлено через 31 минуту
так есть идеи какие? или так и придется использовать 8-/16-ричную систему счисления?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2010, 20:44     Перевод длинного двоичного числа в десятичную СС
Еще ссылки по теме:

Перевод вещественного числа из двоичной системы в десятичную c++ C++
Перевод двоичного числа в прямой и обратный код C++
Перевод длинного десятичного числа в шестнадцатиричное C++

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

Или воспользуйтесь поиском по форуму:
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
24.09.2010, 20:44     Перевод длинного двоичного числа в десятичную СС #8
gGrn-7DA, если это не студенческая задача, то можно воспользоваться готовыми библиотеками, например, Big Integer Library. Там можно загрузить число из строки в любой СС и потом обратно конвертнуть.
Yandex
Объявления
24.09.2010, 20:44     Перевод длинного двоичного числа в десятичную СС
Ответ Создать тему
Опции темы

Текущее время: 00:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru