บทความนี้อธิบายการใช้งานฟังก์ชั่นตัวแปลงไบนารีที่ซับซ้อนใน Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
นี่คือตัวแปลงไบนารีที่เขียนโดย Java รวมถึงการแปลงร่วมกัน 12 ประเภทระหว่าง 10, 2, 8 และ hexadecimal หลังจากป้อนหมายเลขที่จะถูกแปลงให้เลือกวิธีการแปลงที่คุณต้องการใช้ตามพรอมต์และส่งออกผลลัพธ์การแปลง
หมายเหตุ: ไฟล์ที่อัปโหลดใหม่ได้รับการปรับปรุงตามรหัสก่อนหน้า (3. รหัส Java ดั้งเดิมด้านล่าง) ซึ่งสามารถใช้การห่อหุ้มได้ดีขึ้น
1. SystemConvert.java
Package Day8; นำเข้า java.util.scanner; SystemConvert Public Class {สแกนเนอร์สแกนเนอร์คงที่ = สแกนเนอร์ใหม่ (System.in); สตริงคงที่ s = ""; // กำหนดวิธีการทศนิยมกับไบนารี สตริงคงที่สาธารณะ c10t2 (int numb) {string result = ""; สำหรับ (int i = numb; i> 0; i /= 2) ผลลัพธ์ = i % 2 + ผลลัพธ์; ผลการกลับมา; } // กำหนดวิธีการทศนิยมกับ Octal สตริงคงที่สาธารณะ c10t8 (int numb) {string result = ""; สำหรับ (int i = numb; i> 0; i /= 8) ผลลัพธ์ = i % 8 + ผลลัพธ์; ผลการกลับมา; } // กำหนดวิธีการของ BIN เป็นทศนิยม สาธารณะคงที่ int c2t10 (int numb) {int k = 0, result = 0; // string result = null; สำหรับ (int i = numb; i> 0; i /= 10) {ผลลัพธ์ += (i % 10) * math.pow (2, k); K ++; } ผลตอบแทนผลลัพธ์; } // กำหนดวิธีการของ octal ถึงทศนิยม สาธารณะคงที่ int c8t10 (int numb) {int k = 0, temp = 0; สำหรับ (int i = numb; i> 0; i /= 10) {temp += (i % 10) * math.pow (8, k); K ++; } ส่งคืนอุณหภูมิ; } โมฆะคงที่สาธารณะ convert10 (int numb, int ถึง) {string s = ""; สวิตช์ (ถึง) {กรณีที่ 2: s = "" + c10t2 (numb); หยุดพัก; กรณีที่ 8: S = "" + C10T8 (NUMB); หยุดพัก; กรณีที่ 16: s = integer.tohexstring (numb) .touppercase (); หยุดพัก; ค่าเริ่มต้น: system.out.println ("อินพุตผิด!"); } system.out.println (s); } โมฆะคงที่สาธารณะ convert2 (int numb, int ถึง) {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); } โมฆะคงที่สาธารณะ convert8 (int numb, int ถึง) {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); } โมฆะคงที่สาธารณะ convert16 (สตริงชา, int ถึง) {string s = ""; สวิตช์ (ถึง) {กรณีที่ 2: int temp2 = integer.parseint (numb, 16); s = c10t2 (temp2); หยุดพัก; กรณีที่ 8: int temp3 = integer.parseint (มึนงง, 16); s = c10t8 (temp3); หยุดพัก; กรณีที่ 10: int temp = integer.parseint (numb, 16); s = "" + อุณหภูมิ; หยุดพัก; ค่าเริ่มต้น: system.out.println ("อินพุตผิด!"); } system.out.println (s); } การแปลงโมฆะคงที่สาธารณะ (int numb, int จาก, int ถึง) {switch (จาก) {กรณี 10: convert10 (numb, to); หยุดพัก; กรณีที่ 2: Convert2 (numb, to); หยุดพัก; กรณีที่ 8: Convert8 (Numb, to); หยุดพัก; ค่าเริ่มต้น: system.out.println ("อินพุตผิด!"); }} การแปลงโมฆะแบบคงที่สาธารณะ (สตริงชา, int จาก, int ถึง) {สวิตช์ (จาก) {กรณี 16: convert16 (numb, ถึง); หยุดพัก; ค่าเริ่มต้น: system.out.println ("อินพุตผิด!"); }} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {system.out.println ("มันเป็นเลขฐานสิบหกที่จะถูกแปลงหรือไม่ /n ป้อน 1 หมายถึงใช่; /n ป้อน 2 หมายถึงไม่ /n"); อินพุต int = scanner.nextint (); สวิตช์ (อินพุต) {กรณีที่ 1: System.out.println ("โปรดป้อนหมายเลข hexadecimal:"); สตริง 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 (); แปลง (NUNB2, จาก, to2); หยุดพัก; ค่าเริ่มต้น: system.out.println ("อินพุตผิด!"); -2. ภาพหน้าจอของเอฟเฟกต์การทำงาน:
3. รหัส Java ดั้งเดิม
นำเข้า java.util.scanner; Public Class SystemCanvert {สแกนเนอร์สแกนเนอร์คงที่ = เครื่องสแกนใหม่ (System.in); สตริงคงที่ s = ""; Public Static Void Convert () {System.out.println ("โปรดป้อนหมายเลข:"); หมายเลขสตริง = scanner.next (); System.out.println ("เลือกวิธี:/n ป้อน 1, แสดงทศนิยมกับไบนารี;/n" + "อินพุต 2, แสดงทศนิยมกับทศนิยม;/n" + "อินพุต 3, แสดงทศนิยมถึงแปด - n" + "อินพุต ทศนิยม;/n " +" อินพุต 7 หมายถึงภาษาเยอรมันถึง ength;/n " +" อินพุต 8 หมายถึงภาษาเยอรมันถึง hexadecimal;/n " +" อินพุต 9 หมายถึง ength to hexadecimal;/n " +" อินพุต 10 หมายถึง hexadecimal;/n " +" อินพุต int = scanner.nextint (); สวิตช์ (อินพุต) {กรณี 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 (จำนวนเต็ม TOSTRING (C2T10 (NUMB))); หยุดพัก; กรณีที่ 8: // 2 >>> 16 S = Integer.toHexstring (Integer.ValueOf (C2T10 (NUMB))). Touppercase (); หยุดพัก; กรณีที่ 9: // 8 >>> 2 S = "" + C10T2 (จำนวนเต็ม 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 (จำนวนเต็ม toString (temp3)); หยุดพัก; ค่าเริ่มต้น: system.out.println ("อินพุตผิด!"); } system.out.println (s); } สาธารณะคงที่ int c2t10 (สตริง numb) {int k = 0, result = 0; // string result = null; สำหรับ (int i = integer.valueof (numb); i> 0; i /= 10) {ผลลัพธ์ += (i % 10) * math.pow (2, k); K ++; } ผลตอบแทนผลลัพธ์; } สาธารณะคงที่ 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 (สตริง numb) {string result = ""; สำหรับ (int i = integer.valueof (numb); i> 0; i /= 8) ผลลัพธ์ = i % 8 + ผลลัพธ์; ผลการกลับมา; } สตริงคงที่สาธารณะ c10t2 (สตริง numb) {string result = ""; สำหรับ (int i = integer.valueof (numb); i> 0; i /= 2) ผลลัพธ์ = i % 2 + ผลลัพธ์; ผลการกลับมา; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {systemConvert.convert (); -4. เรียกใช้ภาพหน้าจอ:
PS: นี่คือเครื่องมือแปลงและการคำนวณออนไลน์สำหรับเว็บไซต์นี้ ฉันเชื่อว่ามันจะเป็นประโยชน์กับคุณ:
เครื่องมือแปลงออนไลน์โดยพลการ:
http://tools.vevb.com/transcoding/hexconvert
เครื่องคิดเลขมาตรฐานออนไลน์:
http://tools.vevb.com/jisuanqi/jsq
เครื่องคิดเลขทางวิทยาศาสตร์ออนไลน์:
http://tools.vevb.com/jisuanqi/jsqkeexue
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน