Este artículo describe la implementación de complejas funciones del convertidor binario en Java. Compártelo para su referencia, como sigue:
Este es un convertidor binario escrito por Java, que incluye 12 tipos de conversiones mutuas entre 10, 2, 8 y hexadecimales. Después de ingresar un número para convertir, seleccione el método de conversión que desea utilizar de acuerdo con las solicitudes y genere el resultado de conversión.
Nota: El archivo recién cargado se ha mejorado en función del código anterior (3. Código Java original a continuación), que puede implementar mejor la encapsulación.
1. SystemConvert.java
Paquete Day8; import java.util.scanner; public class SystemConvert {static scanner scanner = new Scanner (System.in); cadena estática S = ""; // Defina el método de decimal a binario. public static String C10T2 (int Numb) {String result = ""; for (int i = numB; i> 0; i /= 2) resultado = i % 2 + resultado; resultado de retorno; } // Defina el método de decimal a octal. public Static String C10T8 (int Numb) {String result = ""; for (int i = numB; i> 0; i /= 8) resultado = i % 8 + resultado; resultado de retorno; } // Defina el método de bin a decimal. public static int c2t10 (int Numb) {int k = 0, resultado = 0; // string result = null; for (int i = numb; i> 0; i /= 10) {resultado += (i % 10) * Math.Pow (2, k); K ++; } resultado de retorno; } // Defina el método de octal a decimal. public static int c8t10 (int Numb) {int k = 0, temp = 0; for (int i = numb; i> 0; i /= 10) {temp += (i % 10) * Math.Pow (8, k); K ++; } return temp; } public static void Convert10 (int Numb, int to) {String s = ""; cambiar (a) {caso 2: s = "" + C10T2 (NUMB); romper; Caso 8: S = "" + C10T8 (NUMB); romper; Caso 16: S = Integer.ToHexString (NUMB) .ToUpperCase (); romper; predeterminado: system.out.println ("entrada incorrecta!"); } System.out.println (s); } public static void Convert2 (int Numb, int to) {String S = ""; cambiar (a) {caso 10: s = "" + C2T10 (NUMB); romper; caso 8: s = "" + C10T8 (C2T10 (NUMB)); romper; Caso 16: S = Integer.ToHexString (C2T10 (NUMB)). TOUPPERCASE (); romper; predeterminado: system.out.println ("entrada incorrecta!"); } System.out.println (s); } public static void Convert8 (int Numb, int to) {String S = ""; conmutar (a) {caso 2: s = "" + C10T2 (C8T10 (NUMB)); romper; Caso 10: S = "" + C8T10 (NUMB); romper; Caso 16: S = Integer.ToHexString (C8T10 (NUMB)). TOUPPERCASE (); romper; predeterminado: system.out.println ("entrada incorrecta!"); } System.out.println (s); } public static void Convert16 (String Numb, int to) {String S = ""; cambiar (a) {caso 2: int temp2 = Integer.ParseInt (Numb, 16); s = C10T2 (temp2); romper; Caso 8: int tempp3 = integer.parseInt (entumecido, 16); S = C10T8 (TEMP3); romper; Caso 10: int temp = Integer.ParseInt (entumecido, 16); s = "" + temp; romper; predeterminado: system.out.println ("entrada incorrecta!"); } System.out.println (s); } public static void Convert (int Numb, int from, int to) {switch (from) {case 10: convert10 (numor, a); romper; caso 2: convert2 (entumecido, a); romper; Caso 8: Convert8 (entumecido, a); romper; predeterminado: system.out.println ("entrada incorrecta!"); }} public static void Convert (String Numb, int from, int to) {switch (from) {case 16: convert16 (entumer, a); romper; predeterminado: system.out.println ("entrada incorrecta!"); }} public static void main (string [] args) {System.out.println ("¿El número hexadecimal se convertirá? /n Enter 1. Representa sí; /n Entrada 2. Representa no./n"); int input = scanner.nextInt (); switch (entrada) {Case 1: System.out.println ("Por favor ingrese un número hexadecimal:"); Cadena Numb = Scanner.Next (); System.out.println ("¿A qué tipo de número binario se convierte?"); int tT = Scanner.NextInt (); convertir (entumecido, 16, a); romper; Caso 2: System.out.println ("Por favor ingrese un número hexadecimal:"); int numb2 = scanner.nextInt (); System.out.println ("¿De qué número binario?"); int de = Scanner.NextInt (); System.out.println ("¿Qué número binario convertir?"); int tO2 = scanner.nextInt (); convertir (Numb2, desde, To2); romper; predeterminado: system.out.println ("entrada incorrecta!"); }}}2. Captura de pantalla del efecto de ejecución:
3. Código de Java original
import java.util.scanner; public class SystemConvert {static scanner scanner = new Scanner (System.in); cadena estática S = ""; public static void convert () {System.out.println ("Ingrese un número:"); Número de cadena = Scanner.Next (); System.out.println("choose a way:/n Enter 1, indicating decimal to binary;/n" + "Input 2, indicating decimal to decimal;/n" + "Input 3, indicating decimal to octal;/n" + "Input 4, means ength to decimal;/n" + "Input 5, means decimal to hexadecimal;/n" + "Input 6, means hexadecimal to entrada decimal;/n " +", significa alemán a Ength;/n " +" entrada 8, significa alemán a hexadecimal;/n " +" entrada 9, significa Ength a hexadecimal;/n " +" entrada 10, significa Ingth a hexadecimal;/n " +" entrada 11, significa heexadecimal to bin;/n " +" entrada 12, significa hexadecimal; int input = scanner.nextInt (); Switch (entrada) {caso 1: // 10 >>> 2 S = "" + C10T2 (NUMB); romper; caso 2: // 2 >>> 10 S += C2T10 (NUMB); romper; caso 3: // 10 >>> 8 S = "" + C10T8 (NUMB); romper; caso 4: // 8 >>> 10 S = "" + C8T10 (NUMB); romper; Caso 5: // 10 >>> 16 S = Integer.ToHexString (Integer.ValueOf (Numb)). TOUPPERCASE (); romper; Caso 6: // 16 >>> 10 int temp = Integer.ParseInt (NUMB, 16); s = "" + temp; romper; Caso 7: // 2 >>> 8 S = "" + C10T8 (Intoger.ToString (C2T10 (NUMB))); romper; Caso 8: // 2 >>> 16 S = Integer.ToHexString (Integer.ValueOf (C2T10 (Numb))). TOUPPERCERCASE (); romper; Caso 9: // 8 >>> 2 S = "" + C10T2 (Integer.ToString (C8T10 (NUMB))); romper; Caso 10: // 8 >>> 16 S = Integer.ToHexString (Integer.ValueOf (C8T10 (Numb))). TOUPPERCERCASE (); romper; caso 11: // 16 >>> 2 int temp2 = integer.parseInt (entumecido, 16); s = Integer.TobinaryString (temp2); romper; caso 12: // 16 >>> 8 int tempp3 = integer.parseInt (entumecido, 16); s = C10T8 (Integer.ToString (TEMP3)); romper; predeterminado: system.out.println ("entrada incorrecta!"); } System.out.println (s); } public static int c2t10 (numor de cadena) {int k = 0, resultado = 0; // string result = null; for (int i = integer.ValueOf (NUMB); i> 0; i /= 10) {resultado += (i % 10) * Math.Pow (2, k); K ++; } resultado de retorno; } public static int c8t10 (numor de cadena) {int k = 0, temp = 0; for (int i = integer.ValueOf (Numb); i> 0; i /= 10) {temp += (i % 10) * Math.Pow (8, k); K ++; } return temp; } public static String C10T8 (String Numb) {String Result = ""; for (int i = integer.ValueOf (NUMB); i> 0; i /= 8) resultado = i % 8 + resultado; resultado de retorno; } public static String C10T2 (String Numb) {String Result = ""; for (int i = integer.ValueOf (NUMB); i> 0; i /= 2) resultado = i % 2 + resultado; resultado de retorno; } public static void main (string [] args) {SystemConvert.Convert (); }}4. Ejecute la captura de pantalla:
PD: Aquí hay algunas herramientas de conversión y cálculo en línea para este sitio web. Creo que te será útil:
Herramienta de conversión arbitraria en línea:
http://tools.vevb.com/transcoding/hexconvert
Calculadora estándar en línea:
http://tools.vevb.com/jisuanqi/jsq
Calculadora científica en línea:
http://tools.vevb.com/jisuanqi/jsqkeexue
Espero que este artículo sea útil para la programación Java de todos.