Может ли мне помочь в преобразовании 18 цифр строки числовую для BigInteger в JavaКак преобразовать 18-значную цифровую строку в BigInteger?
т.е., строка "0x9999999999999999"
должна выглядеть как 0x9999999999999999
числовое значение.
Может ли мне помочь в преобразовании 18 цифр строки числовую для BigInteger в JavaКак преобразовать 18-значную цифровую строку в BigInteger?
т.е., строка "0x9999999999999999"
должна выглядеть как 0x9999999999999999
числовое значение.
Вы ожидаете, что число будет в шестнадцатеричном виде, как это обычно означает 0x?
Чтобы превратить обычную строку в BigInteger
BigInteger bi = new BigInteger(string);
String text = bi.toString();
превратить номер шестнадцатеричном как текст в BigInteger и обратно.
if(string.startsWith("0x")) {
BigInteger bi = new BigInteger(string.sustring(2),16);
String text = "0x" + bi.toString(16);
}
BigInteger bigInt = new BigInteger("9999999999999999", 16);
Вы можете указать базу в BigInteger конструктора.
BigInteger bi = new BigInteger("9999999999999999", 16);
String s = bi.toString(16);
Если строка всегда начинается с "0x" и шестнадцатеричное:
String str = "0x9999999999999999";
BigInteger number = new BigInteger(str.substring(2));
лучше, проверьте, если он начинается с "0x"
String str = "0x9999999999999999";
BigInteger number;
if (str.startsWith("0x")) {
number = new BigInteger(str.substring(2), 16);
} else {
// Error handling: throw NumberFormatException or something similar
// or try as decimal: number = new BigInteger(str);
}
Чтобы вывести его как шестнадцатеричный или преобразовать в шестнадцатеричное представление:
System.out.printf("0x%x%n", number);
// or
String hex = String.format("0x%x", number);
Следите за отрицательными значениями здесь! – TheRealNeo
Не уверен, почему существует пониженное голосование, учитывая, что второй пример дает ОП, требуемый для вывода, @Carlos - это единственный другой, который делает. (Он опубликовал позже) –
Это также не учитывает отрицательные значения – TheRealNeo
@TheRealNeo Вы можете привести пример отрицательного шестнадцатеричного значения, которое вы имеете в виду? –