import java.util.*;
import java.lang.*;
public class ConversionOfNumberSystems {
public class Number{
String s;
int x;
Number(){}
Number(String s, int x){
this.s=s;
this.x=x;
}
public void print() {
System.out.println(this.s + " " + this.x);
}
}
public int XToTen(Number a) {
int p=1;
int temp=0;
for(int i=a.s.length()-1; i>=0; i--) {
char c=a.s.charAt(i);
int d=0;
if(c<='9' && c>='0') d=(int)(c-'0');
else if(c<='Z' && c>='A') d=10+c-'A';
else d=10+c-'a';
temp+=d*p;
p*=a.x;
}
return temp;
}
public Number TenToX(int a, int x) {
String s="";
while(a>0) {
int t=a%x;
if(t<=9) s=Integer.toString(t)+s;
else s=(t-10+'A')+s;
a/=x;
}
Number ans = new Number(s, x);
return ans;
}
public Number solve(Number a, int x) {
return TenToX(XToTen(a), x);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="110A";
int x=16;
ConversionOfNumberSystems CONS = new ConversionOfNumberSystems();
Number a = CONS.new Number(s, x);
int p=2;
Number b = CONS.solve(a, p);//a转换成p进制
b.print();
}
}
进制转换
最新推荐文章于 2021-10-12 17:18:11 发布