В Java большинство примитивных типов подписаны (один бит используется для представления +/-), поэтому, когда я превышу пределы типа, я могу получить неожиданные результаты, например отрицательные числа.
Есть ли лучшее решение, чем использование BigInteger для этого, так как BigInteger имеет проблемы с производительностью, и вам нужно использовать методы класса для базовой арифметики вместо операторов языка (читаемость развалин)?