2014-08-27 1 views
-1

"Integer.parseInt ("0x16 ", 10)"을 사용하여 10 진수로 "0x16"과 "0b10"을 변환하려고 시도하고 있지만 이 오류 방법 :있는 Integer.parseInt 기능Integer.parseInt (String, int)를 사용하여 문자열을 10 진수로 변환하는 방법

Exception in thread "main" java.lang.NumberFormatException: For input string: "0x16" 
+0

[documentation] (http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String,%20int%29)에 그 오류를 표시하려면 올바른. – usr2564301

+0

16 진수/2 진수 표시기가 없어야하며 기본 설정이 잘못되었습니다. 참조 : http://stackoverflow.com/questions/15735079/convert-from-one-base-to-another-in-java –

답변

2

argumet 우선하여 번호를 표현하는 스트링이며, 제 argumet는베이스 (또는 기수)이다.

"0x16"은 두 부분으로 구성되며 "0x"는 밑이 16 인 것을 나타내며 "16"은 16 진수로 숫자를 나타냅니다. 당신이 "0 * 16"의 정수 값을 얻고 싶은 경우에

코드는

int aValue; 
aValue = Integer.parseint("16",16); 

다음, 당신이

printf("%d" , aValue); 

포인트 입니다 코드를 따라 소수점 이하의 값을 표시 할 수있을 것입니다 1. 2 진수, 10 진수 및 16 진수는 정수 값을 문자열로 표현하는 형식입니다. 2. "0x16"과 "0b10"은 'base'와 'value'(문자열)의 조합입니다. 3. 조합 문자열을 정수로 변환하려면 Inter.parseint를 'string'을 첫 번째 인수로 사용하고 'base'를 두 번째 인수로 사용하십시오. (0x는 '베이스는 16', 0b는 '베이스가 2'등임을 의미) 예 : : parseint ("16", 16); "0b10": parseint ("10", 2);

관련 문제