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

Увеличение разрядности - C++

Восстановить пароль Регистрация
 
broDiaga_cpp
 Аватар для broDiaga_cpp
19 / 9 / 1
Регистрация: 20.02.2010
Сообщений: 180
17.07.2013, 16:33     Увеличение разрядности #1
Проблема следующая: в процессе вычисления 32битных чисел возникает переполнение. Причём значительное.
Хотелось бы получить результат 512 битный. Ну или хотя бы 256.
Кто-нибудь сталкивался с этой задачей?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2013, 16:33     Увеличение разрядности
Посмотрите здесь:

C++ определение разрядности
C++ Создание числа из разрядности (простейший способ)
Программа ждет ввода числа и в зависимости от количества цифр в числе выдает сообщение об их разрядности: трехзначное, пятизначное и т.д C++
Подскажите знаковые целые заданной разрядности C++
C++ Рекурсивная функция вычисления разрядности числа в двоичном виде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,308
17.07.2013, 16:35     Увеличение разрядности #2
Да. Результат можно получить любой разрядности.
Гуглить "длинная арифметика". Ну или посмотри на библиотеку GMP......
broDiaga_cpp
 Аватар для broDiaga_cpp
19 / 9 / 1
Регистрация: 20.02.2010
Сообщений: 180
29.07.2013, 20:48  [ТС]     Увеличение разрядности #3
Кто знает как реализовать длинную арифметику на int, задействовав все его 32 бита или на int64?
eocron
Кактус
 Аватар для eocron
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
29.07.2013, 21:25     Увеличение разрядности #4
Все его 32 бита задействовать у Вас вряд ли выйдет (очень сложно), а вот со стандартной разрядностью которую человек воспринимает - проще некуда. int вмещает примерно 2млрд., вам же нужно учитывать такую фишку как переполнение при перемножении - 10 000 * 10 000 = 100 000 000, 100 000 * 100 000 = 10 000 000 000 (10 млрд - переполнение)

Значит, основание максимальное для Int 10 000, для лонг инта - 1 млрд.
Все алгоритмы школьной программы математики, только вместо 10 как в школе, у Вас будет 10 000 или 1 млрд.
Для умножения есть более быстрые алгоритмы (не такие тривиальные)
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
29.07.2013, 22:38     Увеличение разрядности #5
Цитата Сообщение от broDiaga_cpp Посмотреть сообщение
Кто знает как реализовать длинную арифметику на int, задействовав все его 32 бита или на int64?
Использовать GMP.
broDiaga_cpp
 Аватар для broDiaga_cpp
19 / 9 / 1
Регистрация: 20.02.2010
Сообщений: 180
29.07.2013, 23:03  [ТС]     Увеличение разрядности #6
Нет, готовые решения не интересуют.
Yandex
Объявления
29.07.2013, 23:03     Увеличение разрядности
Ответ Создать тему
Опции темы

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