티스토리 뷰

[주제]

- 'string'을 활용하여 진수 변환 프로그램 만들기



[중요]

- 결과 출력 시 '10진수 → 2진수'의 경우 나머지가 계산되는 대로 넣었기 때문에 'for문'을 사용하여 거꾸로 출력

- '10진수 → 16진수'의 경우 'strHnum = temp + strHnum' temp 값을 'strHnum' 보다 먼저 대입함으로써 위의 번거로움을 해결



[소스 코딩]

package stringClass2;
 
import java.util.Scanner;
 
class stringClass2 {
    public static void main(String[] args) {
//      진수 변환 프로그램
 
        Scanner scan = new Scanner(System.in);
        int mok = 0;
        int dNum = 0;
        int dNumTemp = 0;
 
        // 10진수 → 2진수(문자열)
        String strBnum = new String();
        boolean transLoop1 = true;
 
        System.out.println("[10진수를 2진수로 변환]");
        System.out.print("10진수를 숫자를 입력해주세요 = ");
 
        dNum = scan.nextInt();
 
        mok = dNum / 2;
        strBnum = strBnum + (dNum % 2);
 
        while (transLoop1) {
            if (mok == 1) {
                transLoop1 = false;
                strBnum = strBnum + Integer.toString(mok);
                break;
            }
            strBnum = strBnum + (mok % 2);
            mok = mok / 2;
        }
 
        System.out.print("10진수 \'" + dNum + "\'의 2진수는 = ");
 
        for (int i = strBnum.length() - 1; i >= 0; i--) {
            System.out.print(strBnum.charAt(i));
        }
        System.out.println();
 
 
        mok = 0;
 
        // 10진수 → 16진수(문자열)
        String strHnum = "";
        dNum = 0;
        String temp;
 
        System.out.println("[10진수를 16진수로 변환]");
        System.out.print("10진수를 숫자를 입력해주세요 = ");
 
        dNum = scan.nextInt();
 
        mok = dNum / 16;
        dNumTemp = dNum % 16;
        switch (dNumTemp) {
            case 10:
                temp = "A";
                break;
            
            case 11:
                temp = "B";
                break;
 
            case 12:
                temp = "C";
                break;
 
            case 13:
                temp = "D";
                break;
 
            case 14:
                temp = "E";
                break;
 
            case 15:
                temp = "F";
                break;
 
            default:
                temp = Integer.toString(dNumTemp);
        }
        strHnum = temp + strHnum;
        
        while (true) {
            if (mok < 16) {
                strHnum =  Integer.toString(mok) + strHnum;
                break;
            }
            dNumTemp = mok % 16;
            switch (dNumTemp) {
                case 10:
                    temp = "A";
                    break;
                
                case 11:
                    temp = "B";
                    break;
 
                case 12:
                    temp = "C";
                    break;
 
                case 13:
                    temp = "D";
                    break;
 
                case 14:
                    temp = "E";
                    break;
 
                case 15:
                    temp = "F";
                    break;
 
                default:
                    temp = Integer.toString(dNumTemp);
            }
            strHnum = temp + strHnum;
            mok = mok / 16;
        }
 
        System.out.print("10진수 \'" + dNum + "\'의 16진수는 = ");
        System.out.print(strHnum);
        System.out.println();
        scan.close();
    }
}
cs



■ 실행결과


'프로그래밍 언어 > Java(연습)' 카테고리의 다른 글

로또 번호 추첨 프로그램  (0) 2016.04.26
cast(형변환)  (0) 2016.04.26
string(문자열)  (0) 2016.04.25
array  (0) 2016.04.25
계산기(두 수만 입력 받기)  (0) 2016.04.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함