Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как повысить ограничение в c++ на int

ромин ёров Ученик (249), открыт 2 недели назад
проблема в том что максимальное значение в с++ является 2e18 с long long с unsigned и тому прочее но можно разогнать это дело до например 1e20 или 1e40 напишите код
4 ответа
Jurijus Zaksas Искусственный Интеллект (445757) 2 недели назад
>Как повысить ограничение в c++ на int
Никак. Придется использовать какие-нибудь библиотеки, например GMP.
ромин ёровУченик (249) 2 недели назад
ну есть какойто арифмитический способ
ромин ёров, Именно этот "арифметический способ" и используется в GMP. Длина целых чисел 64 бита (0..18446744073709551615 для беззнаковых целых или -9223372036854775808...9223372036854775807 для чисел со знаком) - это ограничение НЕ языка, а процессора. И более длинные числа приходится эмулировать, программно собирая их из 64-битных кусков.
Терр Онтал Мудрец (12748) 2 недели назад
Нужно процессор разогнать. У тебя процессор работает на 64 битах, можно до 512 разогнать если знать как
Сергей Гений (59759) 2 недели назад
Имеет смысл максимальное число комбинаций, которое может хранить переменная. Это и есть 2E18. А максимальное значение может быть любым, смотря как интерпретировать (взять тот же double)
И вообще вы скорее всего не так выразились. Максимальное число комбинаций как раз и определяет максимальное число значащих разрядов (или точность для дробного). А оно строго зависит от размера памяти, отведенного под хранение - 64 бит.
И не существует никаких методов без потерь сжимать 128 (или больше) бит в 64.
(zip архивы в расчет не берем:)
Krab Bark Искусственный Интеллект (294639) 2 недели назад
Есть много готовых библиотек для работы с большими целыми числами, так называемой "длинной арифметикой". Но можно взять и просто исходный код такой библиотеки и использовать в своей программе, например,
https://habr.com/ru/articles/172285/
Похожие вопросы