package com.second.go;

import java.io.*;

public class NumericConversion {
 public static void main(String[] args)
 {
    String binaryNumber="";
    int decimalNumber=0; 
    int p,type;
    String str;
    long[] binaryArray;
    try{
     BufferedReader in =new BufferedReader(new InputStreamReader(System.in));
     System.out.print("请输入你要转换进制数类型:");
     type=Integer.parseInt(in.readLine());
     System.out.print("请输入你要转换的"+type+"进制数:");
     binaryNumber=in.readLine();    
     int bnLength=binaryNumber.length();
     binaryArray=new long[bnLength];
     if(type==2||type==8)
     {     
      for(int i=0;i<bnLength;i++)
      {
       binaryArray[i]=Integer.parseInt(binaryNumber.substring(i,i+1));   
      }
      for(int i=0;i<bnLength;i++)
      {
       p=power(type,bnLength-i);
       decimalNumber+=binaryArray[i]*p;
      }
     }
     if(type==16)
     {
      for(int i=0;i<bnLength;i++)
      {
       str=binaryNumber.substring(i,i+1);
       if("0123456789".indexOf(str)!=-1)
       {
         binaryArray[i]=Integer.parseInt(str);
       }
       else if(str.equals("A"))
       {
        binaryArray[i]=10;
       }
       else  if(str.equals("B"))
       {
        binaryArray[i]=11;
       }
       else  if(str.equals("C"))
       {
        binaryArray[i]=12;
       }
       else  if(str.equals("D"))
       {
        binaryArray[i]=13;
       }
       else if(str.equals("E"))
       {
        binaryArray[i]=14;
       }
       else  if(str.equals("F"))
       {
        binaryArray[i]=15;
       }
    
      }  
          
     for(int i=0;i<binaryArray.length;i++)
      {
       p=power(type,binaryArray.length-i);
       decimalNumber+=binaryArray[i]*p;
      } 
    
     }
    
    }catch(IOException ex){
     System.out.println(ex);
    } 
   System.out.println("二进制数转换成十进制数后,为:"+decimalNumber);
 }
 public static int power(int n,int m)
 {
     int temper=1;
     for(int i=0;i<m-1;i++)
     {
      temper*=n;
     }
     return temper;
 }

}