복잡한뇌구조마냥

[JAVA] n진수 변환, 변환 정리 (String ↔ 숫자형) + 3진법 뒤집기 본문

BE/JAVA

[JAVA] n진수 변환, 변환 정리 (String ↔ 숫자형) + 3진법 뒤집기

지금해냥 2025. 7. 3. 17:56

자바(Java)에서는 문자열 ↔ 숫자형, 그리고 진법 변환을 아주 쉽게 처리할 수 있습니다.
이번 글에서는 다음 세 가지를 한눈에 정리합니다:

✅ 문자열 ↔ 숫자형 변환
✅ 숫자 ↔ 문자열 변환
✅ 진법 변환 (2진수, 3진수, 8진수, 16진수 등)


1️⃣ 문자열 → 숫자형 변환

 

타입 사용법 예시
int Integer.parseInt(str);
Integer.valueOf(str);
"123" → 123
long Long.parseLong(str);
Long.valueOf(str);
"123456789" → 123456789L
double Double.parseDouble(str);
Double.valueOf(str);
"3.14" → 3.14
float Float.parseFloat(str);
Float.valueOf(str);
"2.71" → 2.71f
Short Short.parseFloat(str);
Short .valueOf(str);
"123" → 123
String s = "123";
int num = Integer.parseInt(s); // 123

❗ 예외: NumberFormatException 주의
예: "12a" → 에러 발생


2️⃣ 숫자형 → 문자열 변환

타입 사용법 예시
int String.valueOf(i);
String.toString(i);
123   "123"
long String.valueOf(l);
String.toString(l);
123456789L →  "123456789"
double String.valueOf(d);
String.toString(d);
3.14 →  "3.14"
float String.valueOf(f);
String.toString(f);
2.71f → "2.71"
Short String.valueOf(s);
String.toString(s);
123 → "123"
 
int num = 456;
String s = String.valueOf(num); // "456"
 

3️⃣ 진법 변환

🔁 10진수 → n진수 (문자열로)

함수 의미 예시
Integer.toBinaryString(n) 2진수 Integer.toBinaryString(10) → "1010"
Integer.toOctalString(n) 8진수 Integer.toOctalString(10) → "12"
Integer.toHexString(n) 16진수 Integer.toHexString(255) → "ff"
Integer.toString(n, radix) n진수 Integer.toString(10, 3) → "101"
 
int n = 45;
String base3 = Integer.toString(n, 3); // "1200"

🔁 n진수 → 10진수 (문자열 → int)

String base3 = "1200";
int decimal = Integer.parseInt(base3, 3); // 45

 


🧪 예제: 3진법 뒤집기 문제 응용

class Solution {
    public int solution(int n) {
        String third = Integer.toString(n,3);
        String reversed = new StringBuilder(third).reverse().toString();
        int answer = Integer.parseInt(reversed, 3);
        return answer;
    }
}

💡 실전 팁

  • Integer.toString(n, base)와 Integer.parseInt(str, base)는 쌍으로 기억하세요.
  • 진수 변환 결과는 문자열이라는 점에 주의!
  • 수동 진법 계산은 학습 목적 외에는 보통 비효율적

 

참고서적:

 

※ TMI
이번주에 이 책을 구매하러 서점에 다녀왔다.
인터넷 교보문고에 해당 책을 캡처하려고 검색을 해봤더니 6월 30일에 개정판이 나왔더라...
다시 구매했다...
서점에서 구형책을 산 것에 이미 필기를 했고, 책을 접기도 해서 난처할 따름이다...
맴찢... ㅠ


참고자료:

https://cornarong.tistory.com/48

 

[JAVA] 진법 변환 정리 (n진수 <-> 10진수)

1. 10진수 -> n진수 * 변환하기 전에 확인! 10진수를 제외한 나머지 진수는 String으로 받아야 한다. -> int는 전부 10진수로 인식 2진수, 8진수, 16진수는 아래와 같이 Binary, Octal, Hex함수가 존재한다. 물

cornarong.tistory.com

 

https://school.programmers.co.kr/learn/courses/30/lessons/68935

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

LIST