자바/++

자바 n진법 <-> 10진법 바꾸는법

backend dev 2024. 1. 18.

n진법 -> 10진법

Integer.parseInt(값,진법)

반환값은 Int이다.

String num = "01101"; // 2진법 기준 값 = 13

//해당 문자열의 숫자값을 도출 -> 1101
System.out.println(Integer.parseInt(num));

//전달 인자가 2진법으로 표현됬음을 알리고, 10진법으로 바꿔달라는 요청
// 01101을 2진수 보고 10진법으로 바꿨을시 값 -> 13
System.out.println(Integer.parseInt(num,2));

// 01101을 4진수로 보고 10진법으로 바꿨을시 값 -> 81
System.out.println(Integer.parseInt(num, 4));

// 01101을 8진수로 보고 10진법으로 바꿨을시 값 -> 577
System.out.println(Integer.parseInt(num, 8));

 

결과

 


10진법 -> N진법

 

1. 

Integer.toString(값,진법)

반환값은 String이다.

int num = 13;

// 10진법  13을 2진법으로 바꿨을때 결과 1101
System.out.println(Integer.toString(num,2));

// 10진법  13을 4진법으로 바꿨을때 결과 31
System.out.println(Integer.toString(num, 4));

// 10진법  13을 8진법으로 바꿨을때 결과 15
System.out.println(Integer.toString(num, 8));

 

결과

 

2.
Integer.toBinaryString
Integer.toOctalString
Integer.toHexString

int num = 13;

//2진법으로 변환, 리턴값 String
System.out.println(Integer.toBinaryString(num));

//8진법으로 변환, 리턴값 String
System.out.println(Integer.toOctalString(num));

//16진법으로 변환, 리턴값 String
System.out.println(Integer.toHexString(num));

결과

 


수동으로 바꾸기

10진법 -> n진법  

public static void main(String[] args) throws IOException {
    String radix = radix(13, 2);
    System.out.println(radix);


}

static String radix(int number, int radix) {
    StringBuilder sb = new StringBuilder();

    while (number > 0) {
        sb.append(number % radix);
        number /= radix;
    }

    return sb.reverse().toString();
}

10진수 13을 2진법으로 바꾼 결과

n진법 -> 10진법

 

public static void main(String[] args) throws IOException {
    int radix1 = radix("1101", 2);
    System.out.println(radix1);

}

static int radix(String number, int radix) {
    int result = 0;
    int length = number.length();

    for (int i = 0; i < length; i++) {
        int cNum = number.charAt(i) - '0';

        result += cNum * Math.pow(radix, length - i - 1);
    }
    return result;

}

 

1101을 10진법으로

 

'자바 > ++' 카테고리의 다른 글

repeat로 문자열 반복해서 이어붙이기  (0) 2023.05.17
[Java] 두 배열 비교하기  (0) 2022.12.27
[Java] BigInteger (큰 숫자 다루기)  (0) 2022.12.14
[Java] compareTo()  (0) 2022.12.05
[Java] 람다 [미완성]  (0) 2022.12.05

댓글