2014-10-20 5 views
-2

최근에이 코드를 완료하는 방법에 대한 도움을 받았지만 해결 방법을 모르는 또 다른 거대한 오류가 발생했습니다. 그것은 numbers 변수를 사용하라고 말하고 있지만 코드의 첫 번째 줄 중 하나에서 수행합니다. 도와 주실 수 있습니까? 감사!이진에서 십진수로 변환하는 방법

public static int binToDec(int i) 
{ 
    int[] numbers;//initialize variable 
    int f = 4; 
    String iString = "" + i; 
    int result = 0; 
    int length = iString.length(); 
    int power; 
    for(power = iString.length(); power>=0;power--) 
    { 
    while(f == length && f >= 0) 
    { 

     numbers[power] = iString.charAt(power)^power; 
    } 

    length--; 
    f--; 
    } 
    for(int g = 0; g <= numbers.length; g++)//double check constraints 
    { 
     result = numbers[g] = numbers[power]; 
    } 

     return result; 
} 
+0

variable__initialize가 의미하는 것을 보았습니까? –

+0

예, 거의 모든 것을 시도했지만 아무것도 작동하지 않습니다 –

+0

'numbers'를 초기화하지 않았습니다; 너는 단지 그것을 선언했다. – rgettman

답변

0

직접 바이너리 String입니다 십진수로 어떤 진수로 변환 Integer.parseInt(binaryNumber, 2) 방법을 사용할 수 있습니다.

이 코드를 사용하면 이진수를 10 진수로 변환하는 것이 더 효율적입니다.

public static int binaryToDecimal(String binary) { 
    int decimal = 0; 
    for (int i = 0; i < binary.length(); i++) { 
     int digit = new Integer(binary.charAt(binary.length() - i - 1) + ""); 
     decimal += digit * Math.pow(2, i); 
    } 
    return decimal; 
} 
+0

당신이 당신의 방식대로하고 싶다면 알려주세요. – afzalex

1

숫자가 선언되었지만 초기화되지 않았기 때문에 오류가 발생합니다. 시도해보십시오.

numbers = new int [length];

길이를 설정 한 후.

관련 문제