Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / особенности декодирования длинных чисел / 3 сообщений из 3, страница 1 из 1
15.02.2017, 11:47
    #39404715
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
особенности декодирования длинных чисел
оказывается, что
Код: java
1.
2.
long test = 0xdeadbeef00000000L; //good
test = Long.decode("0xdeadbeef00000000"); //java.lang.NumberFormatException: For input string: "deadbeef00000000"


хитрый код в классе Long. Та же картина в Integer (с поправкой на разрядность)
...
Рейтинг: 0 / 0
15.02.2017, 11:54
    #39404722
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
особенности декодирования длинных чисел
ivanra,

Логичное же что первая запись в дополнительном коде. А вторая - нет.
...
Рейтинг: 0 / 0
15.02.2017, 12:02
    #39404735
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
особенности декодирования длинных чисел
да, требует явного указания знака. Из-за этого можно нарваться:
Код: java
1.
2.
3.
long test = 0xdeadbeef00000000L;// и любое другое число с 1 в старшем бите
String s = String.format("0x%016x", test); //0xdeadbeef00000000
test = Long.decode(s); // Exception
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / особенности декодирования длинных чисел / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]