Помогите пожалуйста, нужно перевести из число из десятичной системы в шестнадцатиричную, и обратно
следущий код нормально работает на положительных чисел, но если мы конвертируем отрицательное десятичное в шестнадцатиричное, а затем обратно — вылетает эксэпшн
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));