У меня есть String
, содержащий шестнадцатеричное число "dddddddd"
и в настоящее время я использую метод int hex_to_int(String s)
, чтобы превратить его в int decimalValue
:шестнадцатеричной в десятичную преобразование в Java
public static int hex_to_int(String s)
{
String digits = "ABCDEF";
s = s.toUpperCase();
int val = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int d = digits.indexOf(c);
val = 16*val + d;
}
return val;
}
когда я int decimalValue = hex_to_int("dddddddd");
это дает мне эту decimalValue -572662307
тогда шестнадцатеричной "dddddddd"
должно быть 3722304989
в десятичной форме. Я также пробовал int decimalValue = Integer.parseInt("dddddddd",16);
это дало мне NumberFormatException
.
Другое решение: 'новый BigDecimal (с, 16) .toIntExact()' ' – fge
длинные Целочисленный Беззнаковый = 0xFFFF_FFFFL & hex_to_int (с);' –
я Я использую кеш, и мой кеш представляет собой ** ArrayList **, содержащий тип массива типа int, и это значение «dddddddd» необходимо сохранить в одном из индексов. Что мне теперь делать? – Dingling