任意进制转10进制
十进制中的数位排列是这样的…… 万 千 百 十 个 十分 百分 千分……
R进制中的数位排列是这样的……R^4 R^3R^2 R^1 R^0 R^-1 R^-2 R^-3……
所以任意进制转为10进制直接就按权展开就行
即 十进制 9876=9×10^3+8×10^2+7×10^1+6×10^0 = 9000 + 800 + 70 + 6 = 9876
二进制 1011 = 1×2^3+0×2^2+1×2^1+1×2^0 = 8+2+1 = 11
所以直接从最后一位开始,加上每一位的10进制,最终的和就是待转换数的十进制
1 import java.util.Scanner; 2 3 public class Change { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 Scanner cin = new Scanner(System.in); 8 System.out.print("输入待转换的数和其进制:"); 9 int OldNum = cin.nextInt();//待转换成10进制的数 10 int x = cin.nextInt();//待转换数的进制 11 int num = x2ten(OldNum, x); 12 System.out.println(num); 13 } 14 public static int x2ten(int n, int x) { 15 int num = 0; 16 int k = 1; 17 while(n!=0) { 18 int m = n % 10;//取最后一位数 19 num += m * k; 20 n = n / 10; 21 k *= x; 22 } 23 return num; 24 } 25 }