2010-04-26 6 views

답변

4

그것은이다 아닌 "진수"문자열이기 때문에 당신이 요구하는 것을 완전히 명확 사실 10 진수입니다. 나는 당신이 double을 표현하는 ASCII 문자열을 취하려고하고 이중의 형태로 그 값을 얻으려고한다고 믿는다.이 경우에 Double.parseDouble을 사용하면 충분할 것이다. double 값의 16 진수 문자열을 출력해야하는 경우 Double.toHexString을 사용할 수 있습니다. 프리미티브 래퍼 클래스의 구문 분석 함수 중 하나를 호출 할 때마다 NumberFormatException을 알아야합니다.

 
byte[] ascii = {(byte)0x31, (byte)0x32, (byte)0x2E, (byte)0x30, (byte)0x31, (byte)0x33}; 
String decimalstr = new String(ascii,"US-ASCII"); 
double val = Double.parseDouble(decimalstr); 
String hexstr = Double.toHexString(val); 
7

ASCII를 16 진수 값으로 변환하지 않았습니다. 너는 char 값을 16 진법으로 가지고 있었고, 그 값을 String으로 바꾸고 싶습니다. 나는 당신의 질문을 어떻게 해석하고 있습니다.

String s = new String(new char[] { 
     0x31, 0x32, 0x2E, 0x30, 0x31, 0x33 
    }); 
    System.out.println(s); // prints "12.013" 

당신이 문자열을 제공하고, 인쇄 할거야 아마도 경우는 16 진수로,이 그것을 수행하는 방법입니다 char :

for (char ch : "12.013".toCharArray()) { 
     System.out.print(Integer.toHexString(ch) + " "); 
    } // prints "31 32 2e 30 31 33 " 

당신은 또한 %H 형식 문자열을 사용할 수 있습니다 :

for (char ch : "12.013".toCharArray()) { 
     System.out.format("%H ", ch); 
    } // prints "31 32 2E 30 31 33 " 
관련 문제