تصف هذه المقالة تنفيذ وظائف المحول الثنائي المعقد في Java. شاركه للرجوع إليه ، على النحو التالي:
هذا محول ثنائي مكتوب Java ، بما في ذلك 12 نوعًا من التحويلات المتبادلة بين 10 و 2 و 8 و hexadecimal. بعد إدخال رقم ليتم تحويله ، حدد طريقة التحويل التي تريد استخدامها وفقًا للمطالبات وإخراج نتيجة التحويل.
ملاحظة: تم تحسين الملف الذي تم تحميله حديثًا استنادًا إلى الكود السابق (3. رمز Java الأصلي أدناه) ، والذي يمكنه تنفيذ التغليف بشكل أفضل.
1. SystemConvert.java
Package Day8 ؛ import java.util.scanner ؛ public class SystemConvert {Static Scanner Scanner = new Scanner (System.in) ؛ سلسلة ثابتة s = "" ؛ // تحديد طريقة العشرية إلى الثنائية. السلسلة الثابتة العامة C10T2 (int numb) {string result = "" ؛ لـ (int i = numb ؛ i> 0 ؛ i /= 2) result = i ٪ 2 + result ؛ نتيجة العودة } // تحديد طريقة العشرية إلى ثماني. السلسلة الثابتة العامة C10T8 (int numb) {string result = "" ؛ لـ (int i = numb ؛ i> 0 ؛ i /= 8) result = i ٪ 8 + result ؛ نتيجة العودة } // تحديد طريقة bin إلى عشري. static int c2t10 (int numb) {int k = 0 ، result = 0 ؛ // string result = null ؛ لـ (int i = numb ؛ i> 0 ؛ i /= 10) {result += (i ٪ 10) * math.pow (2 ، k) ؛ K ++ ؛ } نتيجة الإرجاع ؛ } // تحديد طريقة ثماني العشرية. int static int c8t10 (int numb) {int k = 0 ، temp = 0 ؛ لـ (int i = numb ؛ i> 0 ؛ i /= 10) {temp += (i ٪ 10) * math.pow (8 ، k) ؛ K ++ ؛ } درجة حرارة العودة ؛ } public static void convert10 (int numb ، int to) {string s = "" ؛ التبديل (إلى) {الحالة 2: s = "" + c10t2 (numb) ؛ استراحة؛ الحالة 8: s = "" + C10T8 (NOTB) ؛ استراحة؛ الحالة 16: s = integer.toHexString (Numb) .ToupperCase () ؛ استراحة؛ الافتراضي: system.out.println ("إدخال خاطئ!") ؛ } system.out.println (s) ؛ } public static void convert2 (int numb ، int to) {string s = "" ؛ التبديل (إلى) {الحالة 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 = "" ؛ التبديل (إلى) {الحالة 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 = "" ؛ التبديل (إلى) {الحالة 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 = "" + temp ؛ استراحة؛ الافتراضي: system.out.println ("إدخال خاطئ!") ؛ } system.out.println (s) ؛ } تحويل الفراغ الثابت العام (int numb ، int from ، int to) {switch (from) {case 10: convert10 (numb ، to) ؛ استراحة؛ الحالة 2: Convert2 (Numb ، to) ؛ استراحة؛ الحالة 8: Convert8 (Numb ، to) ؛ استراحة؛ الافتراضي: system.out.println ("إدخال خاطئ!") ؛ }} تحويل الفراغ الثابت العام (سلسلة Numb ، int from ، int to) {switch (من) {case 16: convert16 (numb ، to) ؛ استراحة؛ الافتراضي: system.out.println ("إدخال خاطئ!") ؛ }} public static void main (string [] args) {system.out.println ("هل يتم تحويل الرقم السداسي العالي؟ /n Enter 1. يمثل نعم ؛ /n المدخلات 2. لا يمثل ./n") ؛ int input = scanner.nextint () ؛ Switch (input) {case 1: system.out.println ("الرجاء إدخال رقم سداسي عشري:") ؛ سلسلة Numb = Scanner.next () ؛ System.out.println ("أي نوع من العدد الثنائي يتم تحويله إلى؟") ؛ int to = scanner.nextint () ؛ تحويل (خدر ، 16 ، إلى) ؛ استراحة؛ الحالة 2: System.out.println ("الرجاء إدخال رقم سداسي عشري:") ؛ int numb2 = scanner.nextint () ؛ System.out.println ("من أي رقم ثنائي؟") ؛ int من = scanner.nextint () ؛ System.out.println ("ما الرقم الثنائي للتحويل؟") ؛ int to2 = scanner.nextint () ؛ تحويل (numb2 ، من ، to2) ؛ استراحة؛ الافتراضي: system.out.println ("إدخال خاطئ!") ؛ }}}2. لقطة شاشة لتأثير الجري:
3. كود جافا الأصلي
استيراد java.util.scanner ؛ فئة عامة SystemConvert {Static Scanner Scanner = new Scanner (System.in) ؛ سلسلة ثابتة s = "" ؛ void static static convert () {system.out.println ("الرجاء إدخال رقم:") ؛ رقم السلسلة = الماسحة الضوئية .next () ؛ system.out.println ("اختر طريقة:/n إدخال 1 ، مع الإشارة إلى العشرية إلى الثنائي ؛/n" + "المدخلات 2 ، مما يشير إلى العشرية إلى العشرية ؛/n" + "المدخلات 3 ، مما يشير إلى العشرية إلى ثماني ؛/n" + "الإدخال 4 ، يعني المهندس العشري ؛ Decimal ؛/n " +" المدخلات 7 ، تعني الألمانية إلى المهندس ؛/n " +" المدخلات 8 ، تعني الألمانية إلى السداسي عشري ؛/n " +" المدخلات 9 ، تعني المهندس إلى السداسيس ؛/n " +" المدخلات 10 ، تعني المهندس إلى hexadecimal ؛/n " +" المدخلات 11 ، تعني hexadecimal إلى bin ؛ 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 = "" + temp ؛ استراحة؛ الحالة 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) ؛ } static int c2t10 (سلسلة numb) {int k = 0 ، result = 0 ؛ // string result = null ؛ لـ (int i = integer.valueof (numb) ؛ i> 0 ؛ i /= 10) {result += (i ٪ 10) * math.pow (2 ، k) ؛ K ++ ؛ } نتيجة الإرجاع ؛ } static int C8T10 (سلسلة Numb) {int k = 0 ، temp = 0 ؛ لـ (int i = integer.valueof (numb) ؛ i> 0 ؛ i /= 10) {temp += (i ٪ 10) * math.pow (8 ، k) ؛ K ++ ؛ } درجة حرارة العودة ؛ } السلسلة الثابتة العامة C10T8 (String numb) {String result = "" ؛ لـ (int i = integer.valueof (numb) ؛ i> 0 ؛ i /= 8) result = i ٪ 8 + result ؛ نتيجة العودة } السلسلة الثابتة العامة C10T2 (String Numb) {String result = "" ؛ لـ (int i = integer.valueof (numb) ؛ i> 0 ؛ i /= 2) result = i ٪ 2 + result ؛ نتيجة العودة } public static void main (string [] args) {systemConvert.convert () ؛ }}4. تشغيل لقطة الشاشة:
ملاحظة: فيما يلي بعض أدوات التحويل والحساب عبر الإنترنت لهذا الموقع. أعتقد أنه سيكون مفيدًا لك:
أداة التحويل التعسفي عبر الإنترنت:
http://tools.vevb.com/transcoding/hexconvert
الآلة الحاسبة القياسية عبر الإنترنت:
http://tools.vevb.com/jisuanqi/JSQ
الآلة الحاسبة العلمية عبر الإنترنت:
http://tools.vevb.com/jisuanqi/jsqkeexue
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.