2016-10-25 2 views
-3

이 프로그램은 16 진수에서 2 진수로 변환합니다. 내가 실행할 때java.lang.RuntimeException : 컴파일 할 수없는 소스 코드 - 예상치 못한 유형

public static void main(String[] args) throws IOException { 
    int nh = 0, k = 0, j = 0, w = 0, z = 0, lun = 0, r; 
    String line; 
    String nb = null; 
    char nhc = 0; 
    BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in)); 
    System.out.println("Inserire il numero in esadecimale"); 
    line = tastiera.readLine(); 
    lun = line.length(); 
    System.out.println(line); 
    if (lun > 1) { 
     lun--; 
    } 
    for (z = lun; z > 0; z--) 
     nhc = line.charAt(z); 
    { 
     if (nhc == 'a' || nhc == 'A') { 
      nhc = 10; 
     } 
     if (nhc == 'b' || nhc == 'B') { 
      nhc = 11; 
     } 
     if (nhc == 'c' || nhc == 'C') { 
      nhc = 12; 
     } 
     if (nhc == 'd' || nhc == 'D') { 
      nhc = 13; 
     } 
     if (nhc == 'e' || nhc == 'E') { 
      nhc = 14; 
     } 
     if (nhc == 'f' || nhc == 'F') { 
      nhc = 15; 
     } 
     for (k = nhc, w = 0; k > 0 && w < lun * 4; k = k/2, w++) { 
      nb.charAt(w) = k % 2; 
     } 

    } 
    System.out.println("Il numero binario è " + nb); 
} 

이 나타납니다 : 이 내 프로그램 실에서

Inserire il numero in esadecimale 
12 
12 

예외를 "주"java.lang.RuntimeException가 : Uncompilable 소스 코드 - 예상치 못한 유형 이 필요합니다 : 변수를 을 찾았습니다. 값 : at esadecimale.binario.EsadecimaleBinario.main (EsadecimaleBinario.java:56) Java 결과 : 1 BUILD 성공 (총 시간 : 6 초)

+0

실행 : esadecimale에서 Inserire 김정일 NUMERO 스레드에서 예외 "주요"java.lang.RuntimeException가 : Uncompilable 소스 코드 - 필요한 예상치 못한 유형 : 변수 발견 : 값 \t esadecimale.binario.EsadecimaleBinario에서 .in (EsadecimaleBinario.java:56) 자바 결과 : 1 BUILD SUCCESSFUL (총 시간 : 6 초) –

+2

당신은'nb.charAt (w) = k % 2;'을 할 수 없습니다. – SomeJavaGuy

+0

실행 : esadecimale에서 Inserire 김정일 NUMERO 스레드에서 예외 "주요"java.lang.RuntimeException가 : Uncompilable 소스 코드 - 필요한 예상치 못한 유형 : 변수 발견 : 값 \t esadecimale.binario.EsadecimaleBinario.main에서 (EsadecimaleBinario.java:56) Java 결과 : 1 BUILD 성공 (총 시간 : 6 초) –

답변

0

이 할당 할 수 없습니다 nb.charAt(w)= k%2; 왼쪽에있는 값의 (chartAt (인덱스) 문자를 반환합니다) 그리고 그것은 할당 할 수 없습니다. 런타임시이 문제가 발생합니다 ...

확인하십시오 answer. 그것이 의미가 있기를 바랍니다.

+0

어떻게 해결할 수 있습니까? –

+0

다음과 같이 시도하십시오. StringBuilder nb = new StringBuilder (""); nb.setCharAt (w, (char) k % 2); –

관련 문제