Как уже упоминалось, у вас не будет проблем с вычитанием, поэтому, если это все, что вы пытаетесь сделать, не беспокойтесь.
Но, по вашему примеру, сложение переполнится, и ни один из реляционных операторов не будет работать должным образом. Если это проблема, тогда вы можете написать свои собственные реляционные операции или использовать тип коробки лучше, чем Long.
Решения:
1. Используйте BigInteger вместо Long. BigInteger был создан для выполнения расчетов с большими числами и может легко поддерживать 128-битные вычисления.
- Напишите ваши собственные реляционные операции и исключите использование сложения или умножения в качестве возможности. Написание собственного реляционного оператора на самом деле не так сложно. Сначала вы сравниваете самый важный бит. Если старший значащий бит одинаков для обоих чисел, вы можете замаскировать его, выполнив битовую операцию и (&) с 0X7FFFFFFFFFFFFFFF, а затем сравнить маскированные значения.