Как создавать и работать с большими числами?

Вопрос, как правильно создать кастомное число.

Задача следующая, мне нужно будет работать с числами превосходящие размер long. операции стандартные

  • умножение
  • деление
  • сложение
  • Вычитание
  • отображение в двоичном виде.

Хотелось бы узнать есть ли стандартный функционал для работы с подобными числами ?

Если не стандартный а полностью кастомный, то на ум приходит следующее:

Как вариант первое что приходит на ум - это объект внутри которого будет массив бит где будет храниться число в двоичном виде, однако возможно есть стандартные или же обще принятые практики работы с подобными данными ?

И второй вопрос, это как сделать быстрое умножение / деление / сложение / вычитание ?

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


Ответы (0 шт):