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();
}
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;
}
'자바 > ++' 카테고리의 다른 글
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 |
댓글