https://www.acmicpc.net/problem/11179

위 문제를 풀면서 10진수와 2진수간 변환을 좀 더 편하게 할 방법이 없을까 싶어서 코파일럿에게 물어본 결과

stoi를 이용해서 2진수 문자열을 10진수로 쉽게 변환하는 방법이 있었다.

 

stoi(binary, nullptr, 2); 라고 하게 되면 nullptr은 기본값이라 10진수로 출력하게 되며, 2는 2진수->10진수를 의미한다.

2를 8로 바꾸면 8진수로 인식해서 8진수 -> 10진수로 변환한다.

 

#include <bits/stdc++.h>
using namespace std;

int main()
{
	ios::sync_with_stdio(false); cin.tie(NULL);

	int N;
	cin >> N;

	string bs = bitset<8 * sizeof(N)>(N).to_string();
	string binary = bs.substr(bs.find_first_not_of('0'));
	reverse(binary.begin(), binary.end());

	cout << stoi(binary, nullptr, 2);

	return 0;
}