이 기사에서는 Java에서 복잡한 이진 컨버터 기능의 구현에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
이것은 10, 2, 8과 16 진수 사이의 12 가지 유형의 상호 변환을 포함하여 Java 작성된 바이너리 컨버터입니다. 변환 할 숫자를 입력 한 후 프롬프트에 따라 사용할 변환 방법을 선택하고 변환 결과를 출력하십시오.
참고 : 새로 업로드 된 파일은 이전 코드 (아래 3. 원본 Java 코드)를 기반으로 개선되었으며, 이는 캡슐화를 더 잘 구현할 수 있습니다.
1. SystemConvert.java
패키지 DAY8; import java.util.scanner; public class SystemConvert {정적 스캐너 스캐너 = 새 스캐너 (System.In); 정적 문자열 s = ""; // 10 진수에서 이진의 방법을 정의합니다. 공개 정적 문자열 C10T2 (int numb) {문자열 result = ""; for (int i = numb; i> 0; i /= 2) 결과 = i % 2 + 결과; 반환 결과; } // 10 진수에서 10 진수의 방법을 정의합니다. 공개 정적 문자열 C10T8 (int numb) {문자열 result = ""; for (int i = numb; i> 0; i /= 8) 결과 = i % 8 + 결과; 반환 결과; } // 빈의 방법을 10 진수로 정의합니다. public static int c2t10 (int numb) {int k = 0, result = 0; // 문자열 result = null; for (int i = numb; i> 0; i /= 10) {result += (i % 10) * math.pow (2, k); K ++; } 반환 결과; } // 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 ++; } 반환 온도; } public static void convert10 (int numb, int to) {문자열 s = ""; 스위치 (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) {문자열 s = ""; 스위치 (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) {문자열 s = ""; 스위치 (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) {문자열 s = ""; 스위치 (to) {사례 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 진수 숫자입니까? /n 입력 1을 입력하십시오. int input = scanner.nextInt (); switch (입력) {case 1 : system.out.println ( "16 진수를 입력하십시오 :"); 문자열 numb = scanner.next (); System.out.println ( "어떤 이진수가 변환됩니까?"); int to = scanner.nextint (); 전환 (numb, 16,); 부서지다; 사례 2 : System.out.println ( "16 진수를 입력하십시오 :"); int numb2 = scanner.nextint (); System.out.println ( "이진 번호에서 시작 하는가?"); int 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 {정적 스캐너 스캐너 = 새로운 스캐너 (System.In); 정적 문자열 s = ""; public static void convert () {system.out.println ( "숫자를 입력하십시오 :"); 문자열 번호 = 스캐너 .next (); System.out.println ( "방법 :/n Enter 1을 선택하고, 10 진수로 소수;/n" + "입력 2를 나타내며, 십진수 ~" + "입력 3을 나타냅니다. 십진 ~" + "입력 4, 소수;/n" + "입력 5를 의미합니다;/n" + "입력 5는 십명을 의미합니다. + "입력 7, 독일어를 의미한다;/n" + "입력 8, 독일어에서 16 진수;/n" + "입력 9, ength to hexadecimal;/n" + "입력 10, ength to 16 진수;/n" + "입력 11, bin에서 16 진수를 의미한다;/n" + "입력 12, 옥탈까지;/n); int input = scanner.nextInt (); 스위치 (입력) {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; // 문자열 result = null; for (int i = integer.valueof (numb); i> 0; i /= 10) {result += (i % 10) * math.pow (2, k); K ++; } 반환 결과; } 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 ++; } 반환 온도; } public static String C10T8 (String Numb) {String result = ""; for (int i = integer.valueof (numb); i> 0; i /= 8) 결과 = i % 8 + 결과; 반환 결과; } public static String C10T2 (String Numb) {String result = ""; for (int i = integer.valueof (numb); i> 0; i /= 2) 결과 = i % 2 + 결과; 반환 결과; } 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 프로그래밍에 도움이되기를 바랍니다.