Java 进制转换
问题描述:
输入 a,b,c 三个数,程序将 a 进制的 b 转换成 c 进制的表示形式
打印输出一个c进制整数
注意: 1.a,b,c全部为10以内的正整数
2.尽可能的让程序友好一些(应该有对应操作提示)
3.
样例输入
10 9274 8
样例输出
22072
package Test;
import java.util.Scanner;
public class 任意进制相互转换 {
public static void main(String[] args) {
Scanner s =new Scanner(System.in);
System.out.println("**********************进制转换*********************************");
System.out.println();
System.out.println("程序功能:任意进制相互转换");
System.out.println("请输入三个数:a,b,c,它们分别表示当前数的进制,当前数的值以及目标进制:");
int a=s.nextInt();
int b=s.nextInt();
int c=s.nextInt();
System.out.println(a+"进制的"+b+"转换成为"+c+"进制结果为: "+turn(a,b,c));
}
private static int turn(int a, int b, int c) {
int temp=AToO(a,b);
int result=OToA(temp,c);
return result;
}
private static int OToA(int a,int b) {
int r=0,t=1;
while(a!=0){
r += (a%b)*t;
a /= b;
t *= 10;
}
return r;
}
public static int AToO(int a,int b){
int r = 0, t = 0;
while(b!=0){
r += (b%10) * Math.pow(a,t);
++t;
b /= 10;
}
return r;
}
}