2014-01-09 3 views
0

8 진수를 십진수로 변환하려고 시도했지만 출력이 약간 들었지만 만족스럽지 않습니다. 누구나 API를 사용하지 않고 다른 모델을 변환하는 방법을 알 수 있습니까?API를 사용하지 않고 다른 형식으로 8 진수를 십진수로 변환하는 방법은 무엇입니까?

public static void main(String args[]){ 
    System.out.print("Enter the number to convert"); 
    Scanner ss =new Scanner(System.in); 
    int a = ss.nextInt(); 
    int b = ss.nextInt(); 
    int c = ss.nextInt(); 
    int d = ss.nextInt(); 
    int temp =(a*(8*8*8)); 
    int temp1 =(b*(8*8)); 
    int temp2 =(c*(8)); 
    int temp3 =(d*(1)); 
    System.out.println("The decimal is " +"\n" + (temp +temp1 +temp2 +temp3)) 
} 
+0

확인하기 위해 원했다. –

답변

1

이것보십시오 :이 시도하지만 논리를 얻으려고 havn't는

public static void main(String[] args)throws IOException 
{ 
BufferedReader reader = 
new BufferedReader(new InputStreamReader(System.in)); 
String oct = reader.readLine(); 
int i= Integer.parseInt(oct,8); 
System.out.println("Decimal:=" + i); 
} 
0

,

다음 문자열 입력을

String s ; //for input 
String answer =""; 
for(a=0,b=s.length-1;b>=0;b--) 
{ 
int digit =Integer.parseInt(s.charAt(a)); 
int ans = (int)(digit * Math.pow(8,b)); 
answer+=ans; 
a++; 
} 
0

어쩌면 내 버전은 찾고있는 것입니다 :

public static void main(String[] args){ 

    Scanner sc = new Scanner(System.in); 

    System.out.println("Please enter a number: "); 
    String numberString = sc.nextLine(); 
    int[] eachNumbers = new int[numberString.length()]; 

    for(int i = 0; i < eachNumbers.length; i++){ 
     eachNumbers[i] = Integer.parseInt(numberString.substring(i, i+1)); 
    } 

    int digit = 0; 

    for(int i = 0; i < eachNumbers.length; i++){ 
     if(eachNumbers.length > 1){ 
      digit += (eachNumbers[i] * Math.pow(8, eachNumbers.length - (i+1))); 
     }else{ 
      digit += (eachNumbers[i] * 1); 
     } 
    } 
    System.out.println("The Octal " + numberString + " as Decimal is " + digit); 
} 

은 내가 더 잘 할 수 많이가 알고 있지만 난 아직 배우는 중이에요 및 Scanner.nextInt() 메소드가 정수가 아닌 숫자를 읽을 것을 당신에게 :)