Algorithm/이론
[Algorithm] C++ - 10진수, 2진수 진법 변환
유제필
2022. 11. 20. 12:06
진법 변환
C++에서 각 진법 변환에 대한 예제이다.
10진수에서 2진수 변환 에제 코드
#include <iostream>
using namespace std;
int ToBinary(int number);
int main()
{
int n;
cout << "변환할 숫자 입력 : ";
cin >> n;
cout << "10진수" << n << "에서 2진수 " << ToBinary(n) << "변환" << endl;
return 0;
}
int ToBinary(int number)
{
int result = 0;
// 반복 시 마다 1자리씩 늘리도록 i * 10
for(int i = 1; number > 0; i *= 10) {
// 홀수 짝수 인지 판단(0, 1)
int binary = number % 2;
// 2진수 자릿수 추가를 위하여 * i
result += binary * i;
// number를 2씩 나눔
number /= 2;
}
return result;
}
2진수에서 10진수 변환 에제 코드
#include <iostream>
using namespace std;
int ToDecimal(int number);
int main()
{
int n;
cout << "변환할 숫자 입력 : ";
cin >> n;
cout << "2진수" << n << "에서 10진수 " << ToDecimal(n) << "변환" << endl;
return 0;
}
int ToDecimal(int number)
{
int result = 0, n = 1;
while(number > 0) {
// 홀수일 경우 자릿수 값 확인하여 더하기
if(number % 2 != 0) {
result += n;
}
// 2진수 값을 더하기 위해 2씩 곱하기
n *= 2;
// 1자리씩 확인하기 위해 나누기
number /= 10;
}
return result;
}