C++ long long [long [long [...]]] на Linux

программирование Linux C++

Дело такое: надо очень большие числа (для работы с RSA) и мне удалось запринтить
(long long)(pow(2.0, 64.0) - 1.0) // будет 9223372036854775807
но если написать 3 или более "лонгов" то компилятор пишет что это "слишком длинное для него (GCC)", хотя компилировал я через g++
2^64 совсем мало, щитая, что мне нужно будет 2^2048 и даже до числа ((2^2048)-1)*((2^2048)-1)
готовых средств для такого рода шифровки использовать не хочу, а хочу сообственное написать
или лучше использовать несколько 32-битных ключей по-порядку вместо одного 2048-битного?
Ответы:
циклическое повторение long-a не породит новые типы с большей разрядностью. просто long long это такой же базовый арифметический тип как и int. long long long - нет такого типа.
Это называется длинная арифметика, и long long к таковой не относится. Нужно создавать свой пользовательский тип данных. Погуглите по фразе: "длинная арифметика в С++"
Или зайдите сюда: http://cppalgo.blogspot.ru/2010/05/blog-post.html
Только пользовательским типом.
Кстати, если нравится все делать вручную то написать свой тип и реализовать в нем умножение в столбик тоже будет интересно


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

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

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.