У нас есть приложение J2ME, которое должно читать шестнадцатеричные числа. Приложение уже слишком велико для некоторых телефонов, поэтому мы стараемся не включать какой-либо другой кодек или писать собственную функцию для этого.
Все числа представляют собой 64-разрядные целые числа со знаком в шестнадцатеричном формате. Когда мы используем Long.ParseLong (hex, 16), он правильно обрабатывает положительные числа, но создает исключение для отрицательных чисел,
long l = Long.parseLong("FFFFFFFFFFFFFFFF", 16);
Как мы можем получить -1 из этой шестнадцатеричной строки, используя классы, предоставляемые в самой Java?
Некоторые люди могут предложить нам написать наш гекс как -1, как ожидал Java. Извините, формат фиксируется протоколом, и мы не можем его изменить.