Есть ли способ в BigInteger получить значение дополнения 2? Для, например: если есть BigInteger с отрицательным значениемКак получить значение дополнения 2 в BigInteger произвольной длины
BigInteger a = new BigInteger("-173B8EC504479C3E95DEB0460411962F9EF2ECE0D3AACD749BE39E1006FC87B8", 16);
, то я хочу, чтобы получить 2 в дополнение в виде BigInteger
BigInteger b = E8C4713AFBB863C16A214FB9FBEE69D0610D131F2C55328B641D61EFF9037848
я могу вычитать первый BigInteger из 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, чтобы получить второй BigInteger, но есть ли общий метод для вычисления этого для BigInteger любой длины?
Извините, у меня нет ответа, но для чего именно вы это используете? – Michael
Мы следим за протоколом на Android и iOS. В iOS BIGNUM получает + ve, но в Android BigInteger показывает номер -ve (дополнение 2). Нам нужно сопоставить оба значения для наших вычислений. – Harish
И почему вы используете BigInteger для этого? Я предполагаю, что это больше проблема парсера протокола. Я рекомендую вам отредактировать свой вопрос и добавить информацию и код о том, какие данные вы получите, и как вы его разбираете, и что вы делаете после этого. – Robert