この記事では、Javaの複雑なバイナリコンバーター関数の実装について説明します。次のように、参照のために共有してください。
これは、10、2、8、および16進数の間の12種類の相互変換を含むJavaが作成したバイナリコンバーターです。変換する数字を入力した後、プロンプトに従って使用する変換方法を選択し、変換結果を出力します。
注:新しくアップロードされたファイルは、以前のコード(3。以下の元のJavaコード)に基づいて改善されており、カプセル化をより適切に実装できます。
1。SystemConvert.java
パッケージDay8; Import java.util.scanner; public class systemConvert {staticスキャナースキャナー= new Scanner(System.in);静的文字列s = ""; // 10進数からバイナリの方法を定義します。 public static string c10t2(int numb){string result = ""; for(int i = numb; i> 0; i /= 2)result = i%2 + result;返品結果; } // 10進数からOctalの方法を定義します。 public static string c10t8(int numb){string result = ""; for(int i = numb; i> 0; i /= 8)result = i%8 + result;返品結果; } //ビンの方法を小数に定義します。 public static int c2t10(int numb){int k = 0、result = 0; // string result = null; for(int i = numb; i> 0; i /= 10){result +=(i%10) * math.pow(2、k); K ++; } return result; } // octalの方法を10進数から小数点に定義します。 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 ++; } tempを返します。 } public static void convert10(int numb、int to){string s = ""; switch(to){case 2:s = "" + c10t2(numb);壊す;ケース8:s = "" + c10t8(numb);壊す;ケース16:s = integer.tohexstring(numb).touppercase();壊す;デフォルト:system.out.println( "間違った入力!"); } system.out.println(s); } public static void convert2(int numb、int to){string s = ""; switch(to){case 10:s = "" + c2t10(numb);壊す;ケース8:s = "" + c10t8(c2t10(numb));壊す;ケース16:s = integer.tohexstring(c2t10(numb))。touppercase();壊す;デフォルト:system.out.println( "間違った入力!"); } system.out.println(s); } public static void convert8(int numb、int to){string s = ""; switch(to){case 2:s = "" + c10t2(c8t10(numb));壊す;ケース10:s = "" + c8t10(numb);壊す;ケース16:s = integer.tohexstring(c8t10(numb))。touppercase();壊す;デフォルト:system.out.println( "間違った入力!"); } system.out.println(s); } public static void convert16(string numb、int to){string s = ""; switch(to){case 2:int temp2 = integer.parseint(numb、16); S = C10T2(TEMP2);壊す;ケース8:int temp3 = integer.parseint(numb、16); S = C10T8(TEMP3);壊す;ケース10:int temp = integer.parseint(numb、16); s = "" +温度;壊す;デフォルト:system.out.println( "間違った入力!"); } system.out.println(s); } public static void convert(int numb、int、from、int to){switch(from){case 10:convert10(numb、to);壊す;ケース2:convert2(numb、to);壊す;ケース8:convert8(numb、to);壊す;デフォルト:system.out.println( "間違った入力!"); }} public static void convert(string numb、int from、int to){switch(from){case 16:convert16(numb、to);壊す;デフォルト:system.out.println( "間違った入力!"); }} public static void main(string [] args){system.out.println( "変換されるのは16進数ですか? int input = scanner.nextint(); switch(input){case 1:system.out.println( "16進数を入力してください:"); string numb = scanner.next(); System.out.println( "どのバイナリ番号が変換されますか?"); int to = scanner.nextint();変換(numb、16、to);壊す;ケース2:System.out.println( "16進数を入力してください:"); int numb2 = scanner.nextint(); System.out.println( "バイナリ番号から開始しますか?"); from = scanner.nextint(); System.out.println( "どのバイナリ番号が変換されますか?"); int to2 = scanner.nextint();変換(numb2、from、to2);壊す;デフォルト:system.out.println( "間違った入力!"); }}}2。ランニング効果のスクリーンショット:
3。元のJavaコード
import java.util.scanner; public class systemConvert {staticスキャナースキャナー= new Scanner(System.in);静的文字列s = ""; public static void convert(){system.out.println( "番号を入力してください:");文字列番号= scanner.next(); System.out.println( "way:/n enter 1を選択します。10進数からバイナリ;/n" + "入力2を示します。小数を示す10進数から10進数、" + "入力3を示します。小数;/n " +"入力7は、ドイツ語からengthへ、/n " +"入力8を意味し、ドイツ語を意味します。 int input = scanner.nextint(); switch(input){case 1:// 10 >>> 2 s = "" + c10t2(numb);壊す;ケース2:// 2 >>> 10 s += c2t10(numb);壊す;ケース3:// 10 >>> 8 s = "" + c10t8(numb);壊す;ケース4:// 8 >>> 10 s = "" + c8t10(numb);壊す;ケース5:// 10 >>> 16 s = integer.tohexstring(integer.valueof(numb))。touppercase();壊す;ケース6:// 16 >>> 10 int temp = integer.parseint(numb、16); s = "" +温度;壊す;ケース7:// 2 >>> 8 s = "" + c10t8(integer.tostring(c2t10(numb)));壊す;ケース8:// 2 >>> 16 s = integer.tohexstring(integer.valueof(c2t10(numb)))。touppercase();壊す;ケース9:// 8 >>> 2 s = "" + c10t2(integer.tostring(c8t10(numb)));壊す;ケース10:// 8 >>> 16 s = integer.tohexstring(integer.valueof(c8t10(numb)))。touppercase();壊す;ケース11:// 16 >>> 2 int temp2 = integer.parseint(numb、16); s = integer.tobinarystring(temp2);壊す;ケース12:// 16 >>> 8 int temp3 = integer.parseint(numb、16); s = c10t8(integer.tostring(temp3));壊す;デフォルト:system.out.println( "間違った入力!"); } system.out.println(s); } public static int c2t10(string numb){int k = 0、result = 0; // string result = null; for(int i = integer.valueof(numb); i> 0; i /= 10){result +=(i%10) * math.pow(2、k); K ++; } return result; } public static int c8t10(string numb){int k = 0、temp = 0; for(int i = integer.valueof(numb); i> 0; i /= 10){temp +=(i%10) * math.pow(8、k); K ++; } tempを返します。 } public static string c10t8(string numb){string result = ""; for(int i = integer.valueof(numb); i> 0; i /= 8)result = i%8 + result;返品結果; } public static string c10t2(string numb){string result = ""; for(int i = integer.valueof(numb); i> 0; i /= 2)result = i%2 + result;返品結果; } public static void main(string [] args){SystemConvert.Convert(); }}4。スクリーンショットを実行:
PS:このウェブサイトのオンライン変換および計算ツールをいくつか紹介します。私はそれがあなたに役立つと信じています:
オンライン任意の変換ツール:
http://tools.vevb.com/transcoding/hexconvert
オンライン標準電卓:
http://tools.vevb.com/jisuanqi/jsq
オンライン科学計算機:
http://tools.vevb.com/jisuanqi/jsqkeexue
この記事がみんなのJavaプログラミングに役立つことを願っています。