1. N진법 -> 10진법
C++에서는 stoi() 라이브러리를 사용하면 N진법을 쉽게 10진법으로 바꿀 수 있다. stoi()의 기본 형태는 다음과 같다.
int stoi(const string& str, size_t* idx = 0, int base = 10);
- str: 변환할 문자열
- idx: (선택) 변환이 끝난 위치를 저장할 포인터
- base: (선택) 진법. 기본값은 10진수
여기서 base 값에 따라 진법 변환이 가능하다. 이때 base는 36까지만 가능하다!
/* 2진수 변환 */
string s = "1011";
int n = stoi(s, nullptr, 2); // → 11
/* 8진수 변환 */
string s = "17";
int n = stoi(s, nullptr, 8); // → 15
/* 16진수 변환 */
string s = "1A";
int n = stoi(s, nullptr, 16); // → 26
2. 10진법 -> N진법
10진법을 N진법으로 바꾸는 라이브러리는 존재하지 않기 때문에 직접 함수를 구현해서 사용해야 한다.
string toBase(int num, int base) {
if (num == 0) return "0";
string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string result;
while (num > 0) {
result = digits[num % base] + result;
num /= base;
}
return result;
}
'Study > Programming Language' 카테고리의 다른 글
[C++] 짝수/홀수 판단하는 방법 2가지 (0) | 2025.03.31 |
---|---|
[C++] cin >> 을 사용해 키 입력 받기 (0) | 2024.11.03 |
[C++] cout << 을 사용해 화면 출력하기 (0) | 2024.05.03 |
[C] typedef: typedef의 사용법과 특징, 구조체 활용 (2) | 2024.03.23 |
[C] 공용체(Union): 공용체 정의와 공용체 변수 선언, 초기화 (1) | 2024.03.23 |