Системы счисления
От: mrDD  
Дата: 23.05.06 12:50
Оценка:
Помогите пожалуйста, нужно перевести из число из десятичной системы в шестнадцатиричную, и обратно
следущий код нормально работает на положительных чисел, но если мы конвертируем отрицательное десятичное в шестнадцатиричное, а затем обратно — вылетает эксэпшн

java.lang.NumberFormatException: For input string: "FFFFFFFFFFFFFFFF"

// перевод из строкового представления числа в десятичной системе счисления
// в строковое представление числа в шестнадцатиричной системе счисления
StringBuffer strBuffer = new StringBuffer();
long a = Long.valueOf("-1");
strBuffer.append(Long.toHexString(a).toUpperCase());

// обратный перевод - в следущей строке вылетает Exception
long a = Long.decode("0x" + strBuffer.toString());
strBuffer.delete(0, strBuffer.length());
strBuffer.append(Long.toString(a));
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.