자주 사용하는 2진수, 8진수, 16진수의 경우엔 Integer 클래스의 메소드를 사용하여 변환한다.
- 2진수 변환 -> Integer.toBinaryString(int num) -> String
- 8진수 변환 -> Integer.toOctalString(int num) ->String
- 16진수 변환 -> Integer.toHexString(int num) -> String
파라미터에 int형 변수를 넣으면 n진수로 변환된 String형 변수를 반환 한다.
그외 n진수는 n으로 나눈 나머지를 통해 구한다.
10진수인 13를 2진수로 변환하기 위해서는 10진수 k를 바꾸고 싶은 n진수로 나누고 나머지값을 아래서부터 위로 적으면 n진수로 변환된 값이다.
13 / 2 = 6 / 13 % 2 = 1
6 / 2 = 3 / 6 % 2 = 0
3 / 2 = 1 / 3 % 2 = 1
1 / 2 = 0 / 1 % 2 = 1
13의 2진수는 1101이다.
다른 n진수들도 마찬가지 방법으로 구하면 된다.
이를 java 코드로 표현하면 다음과 같을 것이다.
public String solution(int n, int value) {
StringBuilder builder = new StringBuilder();
while (value >= 1) {
builder.insert(0, value % n);
value /= n;
}
return builder.toString();
}
백준 알고리즘 문제를 통해 n진수를 직접 변환해보자.
'Java' 카테고리의 다른 글
StringBuilder, StringBuffer, System.out.print, append (1) | 2019.07.11 |
---|---|
2차원 배열의 깊은 복사, 임의의 클래스 복사 (0) | 2019.06.13 |
비트 연산자 & 쉬프트 연산자 (0) | 2019.05.27 |
정수와 실수 자료형의 최소값과 최대값 (0) | 2019.05.04 |
ArrayList vs Vector (0) | 2019.04.12 |