Este artigo descreve a implementação de funções complexas de conversor binário em Java. Compartilhe -o para sua referência, como segue:
Este é um conversor binário escrito por Java, incluindo 12 tipos de conversões mútuas entre 10, 2, 8 e hexadecimal. Depois de inserir um número a ser convertido, selecione o método de conversão que você deseja usar de acordo com os prompts e produza o resultado da conversão.
Nota: O arquivo recém -enviado foi aprimorado com base no código anterior (3. Código Java original abaixo), que pode implementar melhor o encapsulamento.
1. SystemConvert.java
pacote Day8; importar java.util.scanner; public class SystemConvert {Scanner Static Scanner = new Scanner (System.in); String estática S = ""; // define o método de decimal a binário. public static string c10t2 (int numb) {string result = ""; for (int i = numb; i> 0; i /= 2) resultado = i % 2 + resultado; resultado de retorno; } // Defina o método de decimal para 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 o método do compartimento para decimal. public static int c2t10 (int numb) {int k = 0, resultado = 0; // string resultado = null; for (int i = numb; i> 0; i /= 10) {resultado += (i % 10) * math.pow (2, k); k ++; } resultado de retorno; } // Defina o 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 ++; } retornar temp; } public static void Convert10 (int ent NOM, int para) {string s = ""; switch (to) {case 2: s = "" + c10t2 (numb); quebrar; Caso 8: S = "" + C10T8 (NOMB); quebrar; Caso 16: S = Integer.ToHexString (NOMB) .TOUPPERCASE (); quebrar; padrão: System.out.println ("entrada errada!"); } System.out.println (s); } public static void Convert2 (int ent NOM, int para) {string s = ""; switch (to) {case 10: s = "" + c2t10 (numb); quebrar; Caso 8: S = "" + C10T8 (C2T10 (NOMB)); quebrar; Caso 16: S = Integer.ToHexString (C2T10 (NOMB)). TOUPPERCASE (); quebrar; padrão: System.out.println ("entrada errada!"); } System.out.println (s); } public static void convert8 (int entorne, int para) {string s = ""; switch (to) {case 2: s = "" + c10t2 (c8t10 (numb)); quebrar; Caso 10: S = "" + C8T10 (NOMB); quebrar; Caso 16: S = Integer.ToHexString (C8T10 (NOMB)). TOUPPERCASE (); quebrar; padrão: System.out.println ("entrada errada!"); } System.out.println (s); } public static void convert16 (string numb, int para) {string s = ""; switch (to) {case 2: int temp2 = integer.parseint (numb, 16); s = c10t2 (temp2); quebrar; Caso 8: int Temp3 = Integer.parseint (NOMB, 16); S = C10T8 (TEMP3); quebrar; Caso 10: int temp = Integer.parseint (entorpecido, 16); s = "" + temp; quebrar; padrão: System.out.println ("entrada errada!"); } System.out.println (s); } public static void convert (int numb, int de, int para) {switch (de) {case 10: convert10 (numb, para); quebrar; Caso 2: Convert2 (entorpecido, para); quebrar; Caso 8: convert8 (entorpecido, para); quebrar; padrão: System.out.println ("entrada errada!"); }} public static void convert (string numb, int de, int para) {switch (de) {case 16: convert16 (numb, to); quebrar; padrão: System.out.println ("entrada errada!"); }} public static void main (string [] args) {System.out.println ("O número hexadecimal é convertido? /n digite 1. Representa sim; /n entrada 2. Representa não./n"); int input = scanner.NextInt (); switch (input) {case 1: System.out.println ("Por favor, insira um número hexadecimal:"); String numb = scanner.Next (); System.out.println ("Que tipo de número binário é convertido para?"); int para = scanner.NextInt (); converter (number, 16, para); quebrar; Caso 2: System.out.println ("Por favor, insira um número hexadecimal:"); int numb2 = scanner.NextInt (); System.out.println ("De que número binário?"); int de = scanner.NextInt (); System.out.println ("que número binário para converter?"); int to2 = scanner.NextInt (); converter (numb2, de, para 2); quebrar; padrão: System.out.println ("entrada errada!"); }}}2. Captura de tela do efeito de corrida:
3. Código Java original
importar java.util.scanner; public class SystemConvert {Scanner estático Scanner = new Scanner (System.in); String estática S = ""; public static void convert () {System.out.println ("Por favor, insira um número:"); String número = scanner.Next (); System.out.println ("Escolha uma maneira:/n Digite 1, indicando entrada decimal a binária;/n" + "2, indicando decimal a decimal;/n" + "entrada 3, indicando decimal para octal;/n" + "entrada 4, significa ingestão para decimal;/n" + "" emput ","/n "" " +" entrada 4, significa ingestão; hexadecimal to decimal;/n" + "Input 7, means german to ength;/n" + "Input 8, means german to hexadecimal;/n" + "Input 9, means ength to hexadecimal;/n" + "Input 10, means ength to hexadecimal;/n" + "Input 11, means hexadecimal to bin;/n" + "Input 12, means hexadecimal a octal;/n "); int input = scanner.NextInt (); switch (entrada) {case 1: // 10 >>> 2 s = "" + c10t2 (numb); quebrar; Caso 2: // 2 >>> 10 s += C2T10 (NOMB); quebrar; Caso 3: // 10 >>> 8 s = "" + c10t8 (NOMB); quebrar; caso 4: // 8 >>> 10 s = "" + c8t10 (numb); quebrar; Caso 5: // 10 >>> 16 s = Inteiro.tohexString (Integer.valueof (numb)). touppercase (); quebrar; Caso 6: // 16 >>> 10 int temp = Integer.parseint (NOMB, 16); s = "" + temp; quebrar; Caso 7: // 2 >>> 8 s = "" + c10t8 (Integer.toString (C2T10 (NOMB))); quebrar; Caso 8: // 2 >>> 16 s = Inteiro.ToHexString (Integer.Valueof (C2T10 (NOMB))). TOUPPERCASE (); quebrar; Caso 9: // 8 >>> 2 s = "" + c10t2 (Integer.toString (C8T10 (NOMB))); quebrar; Caso 10: // 8 >>> 16 s = Inteiro.ToHexString (Integer.ValueOf (C8T10 (NOMB))). TOUPPERCASE (); quebrar; Caso 11: // 16 >>> 2 int temp2 = Integer.parseint (NOMB, 16); s = Integer.TobinaryString (temp2); quebrar; Caso 12: // 16 >>> 8 int temp3 = Integer.parseint (NOMB, 16); s = C10T8 (Integer.toString (TEMP3)); quebrar; padrão: System.out.println ("entrada errada!"); } System.out.println (s); } public static int c2t10 (string numb) {int k = 0, resultado = 0; // string resultado = null; para (int i = inteiro.ValueOf (numb); i> 0; i /= 10) {resultado += (i % 10) * math.pow (2, k); k ++; } resultado de retorno; } public static int c8t10 (string numb) {int k = 0, temp = 0; para (int i = inteiro.valueof (numb); i> 0; i /= 10) {temp += (i % 10) * math.pow (8, k); k ++; } retornar temp; } public static string c10t8 (string numb) {string resultado = ""; for (int i = inteiro.ValueOf (numb); i> 0; i /= 8) resultado = i % 8 + resultado; resultado de retorno; } public static string c10t2 (string numb) {string result = ""; para (int i = inteiro.ValueOf (NOMB); i> 0; i /= 2) resultado = i % 2 + resultado; resultado de retorno; } public static void main (string [] args) {SystemConvert.convert (); }}4. Run ScreenShot:
PS: Aqui estão algumas ferramentas de conversão e cálculo on -line para este site. Eu acredito que será útil para você:
Ferramenta de conversão arbitrária online:
http://tools.vevb.com/transcoding/hexconvert
Calculadora Standard Online:
http://tools.vevb.com/jisuanqi/jsq
Calculadora científica online:
http://tools.vevb.com/jisuanqi/jsqkeexue
Espero que este artigo seja útil para a programação Java de todos.