Преобразовать большое число в шестнадцатеричное в Java - PullRequest
1 голос
/ 23 апреля 2020

Поскольку мы знаем, что Макс. Long равен 9223372036854775807

, в моем случае я хочу преобразовать это число dec = 11265437495266153437 в гекс, используя этот метод Integer.toHexString(dec)

любая идея, как это получить результат res = 9C56DFB710B493DD!

1 Ответ

3 голосов
/ 23 апреля 2020

BigInteger::toString( radix )

Вызовите BigInteger::toString и передайте 16, чтобы получить шестнадцатеричный текст.

Сделайте это следующим образом:

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        String value = 
                new BigInteger("11265437495266153437", 10)
                .toString(16)
                .toUpperCase()
        ;
        System.out.println(value);
    }
}

Вывод:

9C56DFB710B493DD

Обратите внимание, что по умолчанию основание составляет 10, поэтому вы можете пропустить его и использовать new BigInteger("11265437495266153437") вместо него без параметра radix.

...