2015-02-27 3 views
0

У меня есть шестнадцатеричная строка, например. «0x103E», я хочу преобразовать его в целое. Средство String no = "0x103E"; до int hexNo = 0x103E; Я пробовал Integer.parseInt("0x103E",16);, но он дает исключение номера формата. Как это достичь?Преобразование шестнадцатеричной строки в шестнадцатеричное целое в java

+1

Возможный дубликат [Преобразование шестнадцатеричной строки в int] (http://stackoverflow.com/questions/11194513/convert-hex-string-to-int) – CKing

+0

Не дубликат вопроса, связанного с @bot. Здесь проблема заключается в дополнительном '0x'. В этом другом вопросе проблема заключалась в размере числа преобразованных. –

+0

удалить 0x из строки – user1627167

ответ

1

Вам просто нужно оставить часть «0x» (так как она фактически не является частью номера).

Вам также необходимо убедиться, что число, которое вы обрабатываете, действительно вписывается в целое число, длина которого составляет 4 байта в Java, поэтому оно должно быть короче 8 цифр в виде шестнадцатеричного числа.

+0

Это дает десятичное представление числа. Я хочу шестнадцатеричный int. – user3153014

+0

Целые числа всегда двоичные. Преобразование их в строку снова (даже в том месте, где вы смотрите на него с помощью отладчика) требует некоторой базы. По умолчанию это база 10. Если вы хотите снова вывести целое число в базе 16, вам нужно использовать 'Integer.toString (i, 16)' (как описано здесь: http://docs.oracle.com/javase/ 8/docs/api/java/lang/Integer.html # toString-int-int-) – mhlz

Смежные вопросы