Как создавать и работать с большими числами?
Вопрос, как правильно создать кастомное число.
Задача следующая, мне нужно будет работать с числами превосходящие размер long. операции стандартные
- умножение
- деление
- сложение
- Вычитание
- отображение в двоичном виде.
Хотелось бы узнать есть ли стандартный функционал для работы с подобными числами ?
Если не стандартный а полностью кастомный, то на ум приходит следующее:
Как вариант первое что приходит на ум - это объект внутри которого будет массив бит где будет храниться число в двоичном виде, однако возможно есть стандартные или же обще принятые практики работы с подобными данными ?
И второй вопрос, это как сделать быстрое умножение / деление / сложение / вычитание ?
Понятно что для этого потребуется перегрузить операторы, но есть ли быстрые подходы к умножению чисел? Спрашиваю потому как, если я буду хранить число в виде массива байтов то умножение двоичного числа на двоичное в столбик может быть дольше чем перемножение двух стандартных чисел. Иначе говоря мне не хотелось бы иметь циклы и сложные логические конструкции...