解题思路:
将一个P进制的数,转化为Q进制的数,分为两步:
1、将P进制数转化为10进制的数
int y=0; int product=1; while(num!=0) { y+=num%10*product; num/=10; product*=p; }
2、将十进制转化为Q进制的数
int[] arr=new int[50]; int length=0; do { arr[length++]=num%q; num/=q; }while(num!=0);
代码:
/** *作者:魏宝航 *2020年11月26日,下午21:05 */ import java.util.*; public class Test{ //将P进制转为10进制 public static int toTen(int num,int p) { int y=0; int product=1; while(num!=0) { y+=num%10*product; num/=10; product*=p; } return y; } //将10进制转为Q进制 public static String toOther(int num,int q) { int[] arr=new int[50]; int length=0; do { arr[length++]=num%q; num/=q; }while(num!=0); String res=""; for(int i=length-1;i>=0;i--) { res+=arr[i]+""; } return res; } public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=12; System.out.println(toTen(10110, 2)); System.out.println(toOther(22, 2)); } }