Cómo utilizar JAVA para realizar la conversión mutua entre solución decimal, octal, binaria y hexadecimal
/*
Solución relativamente primitiva para aprender principios
*/
importar java.util.Scanner;
p >/**
*
* @author Administrador
*/
clase pública Test_math {
public static void main(String args[]) {
Escáner in =new Scanner(System.in);
int m,n;//m base Convertir a n base
System.out.println("Ingrese la base de datos original:");
m=in.nextInt();
System .out. println("Ingrese la base de datos de destino");
n=in.nextInt();
System.out.println("Ingrese los datos a convertir");
in.nextLine();
Cadena s=in.nextLine();
int x10=0;
if( m!=10)
{
x10=Test_math.m_to_ten(s, m);
}
else
{
x10=Integer.parseInt(s);
}
if(n==10)
{
System.out.println("Resultado: "+x10);
return;
}
Cadena ans =Test_math .Convertir decimal a m (x10, n);
System.out.println("Resultado: "+ans);
// int d = 1458;
// Cadena s2 = Test_math.Convertir decimal a m (d, 16);
// System.out.println(s2);
/ / s2 = " 100100";
// d = Test_math.bin_to_ten(s2);
// System.out.println(d);
// System. out.println(Test_math.m_to_ten("AA", 16));
}
public static int m_to_ten(String s, int m) {
int d = 0;
int len = s
.length();
for (int i = 0; i < len; i++) {
String t = String.valueOf(s.charAt(i)); p>
switch(s.charAt(i))
{
caso 'A': caso 'a': t="10";
caso 'B': caso 'b': t="11"; descanso;
caso 'C': caso 'c': t="12";
caso 'D': caso 'd': t="13"; descanso;
caso 'E': caso 'e': t="14";
caso 'F': caso 'f': t="15";
}
int ds = Integer.parseInt(t) * (int) Math.pow(m, (len - i - 1));
d += ds;
}
return d;
}
cadena estática pública decimal a m (int s, int m) {
cadena ans = "";
int n = ( int) (Math.log(s) / Math.log(m)) + 1;
int[] c = new int[n];
c = Test_math.decimal Convertir a base m (s, m, n);
for (int i = 0; i < n; i++) {
if (m == 16 && c[i ] > = 10) {
cambiar (c[i]) {
caso 10:
ans += "A";
descanso;
caso 11:
ans += "B";
descanso;
caso 12:
ans += "C";
descanso;
caso 13:
p>
ans += "D";
descanso;
caso 14:
ans += "E";
ruptura;
caso 15:
ans += "F";
ruptura;
}
} else {
ans += c[i];
}
}
return ans;
}
public static int[] decimal a m (int s, int m, int n) {
//System.out.println(" \n s =" +s+" m="+m+ " n="+n);
//Convierte decimal a m, encuentra n dígitos, almacena en una matriz y devuelve
int[] ans = nuevo int[n];
for (int i = 0; i < n; i++) {
ans[i] = 0;
}
int bit actual = n - 1;
while (s >= m) {
//System.out("s=". +s+" bit actual="+bit actual);
ans[bit actual] = s % m;
bit actual--;
s = s / m;
}
ans[bit actual] = s;
return ans;
}
}