또는
를 사용하면 10진수로 반환해준다.
public class Binary {
public static void main(String[] args) throws Exception {
System.out.println(Integer.parseInt("100",7));
//7진수로 100을 10진수로 만든다.
//10진수로 변환된 49 리턴
System.out.println(Long.parseLong("100", 8));
//8진수로 100인 수를 10진수로 만든다.
//10진수로 변환된 64 리턴
}
}
public class Binary {
public static void main(String[] args) throws Exception {
System.out.println(Integer.toString(100,2));
//10진수로 100을 2진수로 만든다.
//2진수 1100100 리턴
System.out.println(Long.toString(100,2));
//10진수 100을 2진수로 만든다.
//2진수 1100100 리턴
}
}
전체 코드
public class Binary {
public static void main(String[] args) throws Exception {
System.out.println(Integer.parseInt("100",7));
//7진수로 100을 10진수로 만든다.
System.out.println(Integer.toString(100,2));
//10진수로 100을 2진수로 만든다.
System.out.println(Long.parseLong("100", 8));
//8진수로 100인 수를 10진수로 만든다.
System.out.println(Long.toString(100,2));
//10진수 100을 2진수로 만든다.
}
}
실행결과
다만, 코딩테스트에서는 이런 라이브러리를 사용하지 않고,
직접 구현할 수 있게 문제를 낸다.
예를 들면, long 범위로도 표현할 수 없는
매우 큰 범위의 숫자를 N진법 변환시키는 문제를 내면 Long.toString() 이나 Long.parseLong()메서드를 사용할 수 없을 것이다.
그런 문제는 백준 1212번이 있다.
백준 1212번 링크