Эквивалент Convert.ToInt64 в Java - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь следующий код в C #, и он дает мне следующий результат:

long dec1 = Convert.ToInt64("B62FD56EFD5B375D", 16);

result: -531879796222753398

Я пытаюсь сделать это в Java, но я всегдаполучить NumberFormatException, потому что внутри строки есть буквенно-цифровой символ.Что я кодирую в Java:

Long.parseLong("B62FD56EFD5B375D", 16);

Могу ли я узнать, что эквивалентно этому в Java?

Ответы [ 4 ]

0 голосов
/ 10 декабря 2018
long dec1 = new BigInteger("B62FD56EFD5B375D", 16).longValue();
0 голосов
/ 10 декабря 2018

Вы можете использовать Long.parseUnsignedLong в Java, чтобы получить тот же результат.

long result = Long.parseUnsignedLong("B62FD56EFD5B375D", 16);
0 голосов
/ 10 декабря 2018

Максимальное значение 9,223,372,036,854,775,807 (включительно) для длинного значения.Когда значение B62FD56EFD5B375D проанализировано, оно равно 13,127,946,111,482,018,682, которое не может содержать длинное значение.

Поэтому вместо этого используйте BigInteger.

0 голосов
/ 10 декабря 2018

вы можете попробовать с BigInteger

BigInteger value = new BigInteger(hex, 16);
...