Cet article décrit la mise en œuvre de fonctions de convertisseur binaire complexes en Java. Partagez-le pour votre référence, comme suit:
Il s'agit d'un convertisseur binaire rédigé Java, dont 12 types de conversions mutuelles entre 10, 2, 8 et hexadécimal. Après avoir entré un nombre pour être converti, sélectionnez la méthode de conversion que vous souhaitez utiliser en fonction des invites et sortez le résultat de la conversion.
Remarque: Le fichier nouvellement téléchargé a été amélioré en fonction du code précédent (3. Code Java d'origine ci-dessous), ce qui peut mieux implémenter l'encapsulation.
1. SystemConvert.java
Package Day8; import java.util.scanner; public class SystemConvert {static scanner scanner = new Scanner (System.in); chaîne statique s = ""; // Définissez la méthode de décimal en binaire. String statique public C10T2 (int Numb) {String result = ""; pour (int i = numb; i> 0; i / = 2) result = i% 2 + résultat; Résultat de retour; } // Définissez la méthode de décimal en octal. String statique public C10T8 (int Numb) {String result = ""; pour (int i = numb; i> 0; i / = 8) result = i% 8 + résultat; Résultat de retour; } // Définissez la méthode de bac à décimal. public static int c2t10 (int numb) {int k = 0, result = 0; // Résultat de chaîne = null; for (int i = numb; i> 0; i / = 10) {result + = (i% 10) * math.pow (2, k); k ++; } Retour Résultat; } // Définissez la méthode d'octal à décimal. 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 ++; } Retour Temp; } public static void convert10 (int numb, int to) {String s = ""; commutateur (vers) {cas 2: s = "" + c10t2 (Numb); casser; Cas 8: S = "" + C10T8 (Numb); casser; Cas 16: S = Integer.tohexString (Numb) .ToupperCase (); casser; par défaut: System.out.println ("Mauvaise entrée!"); } System.out.println (S); } public static void convert2 (int numb, int to) {String s = ""; commutateur (vers) {cas 10: s = "" + c2t10 (Numb); casser; Cas 8: S = "" + C10T8 (C2T10 (Numb)); casser; Cas 16: S = Integer.tohexString (C2T10 (Numb)). ToupperCase (); casser; par défaut: System.out.println ("Mauvaise entrée!"); } System.out.println (S); } public static void convert8 (int numb, int to) {String s = ""; commutateur (vers) {cas 2: s = "" + c10t2 (c8t10 (numb)); casser; Cas 10: S = "" + C8T10 (Numb); casser; Cas 16: S = Integer.tohexString (C8T10 (Numb)). ToupperCase (); casser; par défaut: System.out.println ("Mauvaise entrée!"); } System.out.println (S); } public static void convert16 (String Numb, int to) {String S = ""; Switch (vers) {cas 2: int temp2 = Integer.ParseInt (Numb, 16); S = C10T2 (Temp2); casser; Cas 8: int temp3 = Integer.ParseInt (Numb, 16); S = C10T8 (TEMP3); casser; Cas 10: int temp = Integer.ParseInt (Numb, 16); S = "" + temp; casser; par défaut: System.out.println ("Mauvaise entrée!"); } System.out.println (S); } public static void convert (int numb, int from, int to) {switch (from) {case 10: convert10 (numb, to); casser; Cas 2: convert2 (Numb, vers); casser; Cas 8: Convert8 (Numb, vers); casser; par défaut: System.out.println ("Mauvaise entrée!"); }} public static void convert (String numb, int from, int to) {switch (from) {case 16: convert16 (numb, to); casser; par défaut: System.out.println ("Mauvaise entrée!"); }} public static void main (String [] args) {System.out.println ("Est-ce un numéro hexadécimal à convertir? / n Entrez 1. Cela signifie oui; / n entre 2. Cela signifie non./n"); int input = Scanner.Nextint (); commutateur (entrée) {cas 1: System.out.println ("Veuillez saisir un numéro hexadécimal:"); String Numb = Scanner.Next (); System.out.println ("Quel numéro binaire est converti pour?"); int à = Scanner.Nextint (); convertir (Numb, 16, à); casser; Cas 2: System.out.println ("Veuillez saisir un numéro hexadécimal:"); int numb2 = Scanner.Nextint (); System.out.println ("Commencez à partir de quel numéro binaire?"); int from = Scanner.Nextint (); System.out.println ("Quel numéro binaire est converti pour?"); int to2 = Scanner.Nextint (); convertir (numb2, de, à, à 2); casser; par défaut: System.out.println ("Mauvaise entrée!"); }}}2. Capture d'écran de l'effet de course:
3. Code Java original
Importer java.util.scanner; public classe SystemConvert {Scanner statique Scanner = nouveau scanner (System.in); chaîne statique s = ""; public static void convert () {System.out.println ("Veuillez saisir un nombre:"); Numéro de chaîne = Scanner.Next (); System.out.println ("Choisir un moyen: / n Entrez 1, indiquant décimal à binaire; / n" + "entrée 2, indiquant décimal à décimal; / n" + "entrée 3, indiquant décimal à octal; / n" + "entrée 4, signifie ength to décimal; / n" + "entrée 5, moyens divimal to hexadecimal; / n" + "saisit 6, moyens hexadec décimal; / n "+" entrée 7, signifie allemand à ength; / n "+" entrée 8, signifie allemand à hexadécimal; / n "+" entrée 9, signifie ength to hexadecimal; / n "+" entrée 10, signifie ength to hexadecimal; / n "+" entrée 11, signifie hexadécimal pour bin; / n "+" entrée 12, signifiant hexadécimal pour bin; / n "+" entrée 12, signifiant hexadécicale pour oxade; int input = Scanner.Nextint (); commutateur (entrée) {cas 1: // 10 >>> 2 S = "" + C10T2 (Numb); casser; Cas 2: // 2 >>> 10 S + = C2T10 (Numb); casser; Cas 3: // 10 >>> 8 S = "" + C10T8 (Numb); casser; Cas 4: // 8 >>> 10 S = "" + C8T10 (Numb); casser; Cas 5: // 10 >>> 16 S = Integer.tohexString (Integer.ValueOf (Numb)). ToupperCase (); casser; Cas 6: // 16 >>> 10 int temp = Integer.Parseint (Numb, 16); S = "" + temp; casser; Cas 7: // 2 >>> 8 S = "" + C10T8 (Integer.ToString (C2T10 (Numb))); casser; Cas 8: // 2 >>> 16 S = Integer.tohexString (Integer.ValueOf (C2T10 (Numb))). ToupperCase (); casser; Cas 9: // 8 >>> 2 S = "" + C10T2 (Integer.ToString (C8T10 (Numb))); casser; Cas 10: // 8 >>> 16 S = Integer.tohexString (Integer.ValueOf (C8T10 (Numb))). ToupperCase (); casser; Cas 11: // 16 >>> 2 int temp2 = Integer.ParseInt (Numb, 16); S = Integer.TobinaryString (Temp2); casser; Cas 12: // 16 >>> 8 int temp3 = Integer.ParseInt (Numb, 16); S = C10T8 (Integer.ToString (TEMP3)); casser; par défaut: System.out.println ("Mauvaise entrée!"); } System.out.println (S); } public static int c2t10 (chaîne Numb) {int k = 0, result = 0; // Résultat de chaîne = null; for (int i = Integer.valueof (Numb); i> 0; i / = 10) {result + = (i% 10) * math.pow (2, k); k ++; } Retour Résultat; } public static int c8t10 (chaîne numb) {int k = 0, temp = 0; for (int i = Integer.valueof (Numb); i> 0; i / = 10) {temp + = (i% 10) * Math.Pow (8, k); k ++; } Retour Temp; } String statique public C10T8 (String Numb) {String result = ""; pour (int i = Integer.Valueof (Numb); i> 0; i / = 8) result = i% 8 + Result; Résultat de retour; } String statique public C10T2 (String Numb) {String result = ""; for (int i = Integer.valueof (Numb); i> 0; i / = 2) result = i% 2 + résultat; Résultat de retour; } public static void main (String [] args) {systemConvert.Convert (); }}4. Capture d'écran d'exécution:
PS: Voici quelques outils de conversion et de calcul en ligne pour ce site Web. Je crois que cela vous sera utile:
Outil de conversion arbitraire en ligne:
http://tools.vevb.com/transcoding/hexconvert
Calculatrice standard en ligne:
http://tools.vevb.com/jisuanqi/jsq
Calculatrice scientifique en ligne:
http://tools.vevb.com/jisuanqi/jsqkeexue
J'espère que cet article sera utile à la programmation Java de tous.