[JAVA] 진수 변환

임시은·2024년 4월 16일
0

JAVA

목록 보기
2/4

📌 10진수 => n진수

Integer.toHexString(num); // 10진수->16진수
Integer.toOctalString(num); // 10진수->8진수
Integer.toBinaryString(num); // 10진수->2진수
Integer.toString(num, radix); // 10진수 -> (radix)진수


📌 n진수->10진수

Integer.parseInt(str,radix);


📌 메소드 없이 진법 변환

public static void conversion(int inputNumber, int radix){
		//더 해야할 것이 많기에 String 대신 StringBuffer사용
        StringBuffer sb = new StringBuffer();
	    int number = inputNumber;
	    
        //변환할 숫자가 0보다 크면 계속 반복한다.
        while(number >0){
            // radix으로 나누어 10보다 작다면 바로 append
            if(number % radix < 10){
                sb.append(number % radix);
                
            // 만약 radix이 10보다 큰 경우 알파벳으로 표기해야한다.
            } else {
                sb.append((char)(number % radix - 10 + 'A')); //이해가 안된다면 아스키 코드를 생각해보자
            }
            number /= radix;
        }
        // StringBuilder의 reverse를 사용해야 정상적으로 출력 가능. 안그러면 거꾸로 출력됨
        System.out.println("정수 " + inputNumber + "를 " + radix + "진법 변환시 : " + sb.reverse());
    }

0개의 댓글