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