C++/공부 정리
진법 전환(진수 to 진수)
sondiaa
2023. 7. 3. 16:28
10진수에서의 n진수로 전환은 아래와 같이 진행할 수 있다.
#include <iostream>
using namespace std;
int main() {
int N, j, index = 0;
int jin[100] = {0,};
cin >> N >> j;
while(1){
if(N < j){
jin[index] = N;
break;
}
jin[index++] = N % j;
N /= j;
}
for(int i=index; i>=0; i++){
cout << jin[i];
}
return 0;
}
좀 더 본격적으로 하면 진수와 진수간의 전환은
n진수를 10진수로 변환하고 해당 10진수를 m진수로 변환하면 된다.
#include <iostream>
using namespace std;
int main() {
string n;
int a, b, num10 = 0;
cin >> a >> b;
cin >> n;
//10진수 변환
for(int i=0; n.length(); i++){
num10 = num10 * a + (n[i] - '0');
}
// 다시 b진수로 변환
int jin[100] = {0, }, index = 0;
while(1){
if(num10 < b){
jin[index] = num10;
break;
}
jin[index++] = num10 % b;
num10 /= b;
}
for(int i = index; i>= 0; i--){
cout << jin[i];
}
return 0;
}