C-Stroull эквивалент в Java - PullRequest
       0

C-Stroull эквивалент в Java

0 голосов
/ 01 сентября 2011

У меня есть код Objective C, который я должен перевести на Java, но у меня есть небольшая проблема с преобразованием одной строки.В коде Objective C у меня есть: UInt64 iz = strtoull(s,&s1,16);.Я искал в интернете abotu strtoull и нашел для него следующую информацию:

strtoul преобразует строку в длинное целое число без знака.Важной особенностью этой функции является возможность принимать данные в различных числовых базах и преобразовывать их в десятичное число.

Первый аргумент не должен содержать + или -.Второй аргумент (char ** endptr) кажется пустой тратой времени!Если для него установлено значение NULL, STRTOL, кажется, работает вниз по строке, пока не найдет недопустимый символ, а затем остановится.Все считанные действительные символы затем преобразуются, если строка начинается с недопустимого символа, функция возвращает ZERO (0).

Третий аргумент (base) может иметь значение 0 или 2-32.

0 - strtol попытается выбрать базу.Поддерживается только Dec, Oct Hex.2-31 - База для использования.

Я попытался найти способ сделать это в Java. В результате проведенных исследований я получил следующее:

long l=Long.parseLong(md5Hash, 16);

И мойвопрос в том, является ли parseLong эквивалентным strtoull и могу ли я использовать его для своего приложения?Если нет, можете ли вы предложить мне, что я могу использовать?

Заранее спасибо!

Ответы [ 4 ]

4 голосов
/ 01 сентября 2011

Вы не можете, потому что long является подписанным в Java. Если вам нужны целые числа без знака для полного диапазона значений 64 бит, то вам нужно использовать класс BigInteger.

1 голос
/ 01 сентября 2011

используйте BigInteger (String val, int radix)

1 голос
/ 01 сентября 2011

Это эквивалентно, но имейте в виду, что long в Java не является без знака. Следовательно, Java long находится в [-2^63, 2^63 - 1].

1 голос
/ 01 сентября 2011

Long.parseLong - это обычный способ парсинга строки в long.Но учтите, что в Java нет неподписанных типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...