Red de conocimiento informático - Descarga de software - Cómo utilizar JAVA para realizar la conversión mutua entre solución decimal, octal, binaria y hexadecimal

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));

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;

}

}