bitset<표현하고 싶은 자릿수> <변수명>(변환하고 싶은 10진수)
.to_string 을 통해 스트링 문자열로 반환도 가능하다.
자체적으로 함수도 만들어 보았다.
#include <iostream>
#include <string>
#include <bitset>
using namespace std;
int pow(int n)// bit_shift함수와 동일
{
int ans = 1;
while(n--)
ans *= 2;
return ans;
}
int bit_shift(int n)// pow와 동일
{
return ((1<<n));
}
void func(int n)
{
string s;
int len = 1;
while (pow(len)-1 < n) len++;//2진법일때의 길이
for(int i=0;i<len;i++)
{
if(pow(len-1-i)<=n)//2^(len-1-i)보다 크거나 같다면
{
n -= pow(len-1-i);//빼주고
s.push_back('1');//1
}
else
s.push_back('0');//아니면 0
}
cout << s << "\n";
}
int main()
{
// bitset 사용
bitset<10> test(8);
cout << test << "\n";
string binary = bitset<4>(8).to_string();
cout << binary << "\n";
// 자체 함수 사용
func(3);//11
func(4);//100
func(7);//111
func(8);//1000
return 0;
}