2017-10-23 1 views
0

정수 (0에서 225까지)를 8 char 바이너리 문자열로 변환해야하는데 비트 셋을 사용하려고했지만 아무런 운이 없었습니다. 어떻게하면 정수를 섭취하고 8 문자 바이너리 문자열로 변환 할 수 있습니까?정수를 이진 문자열로 변환 하시겠습니까?

+5

스택 오버플로에 오신 것을 환영합니다! 지금까지 해봤 던 것을 보여줄 수 있습니까? – templatetypedef

+0

정수에서 각 비트를 가져 와서 비트의 값에 따라 문자열에 '0'또는 '1'문자를 추가하는 루프를 작성하십시오. – Barmar

+0

조금 더 열심히 검색하십시오.이 질문에 답을 얻고 적어도 StackOverflow를 계산하면 반 십이 번 있습니다. –

답변

2

bitset을 사용하는 것이 좋습니다. bitset으로 어떤 문제가 있었는지 모르지만 다음을 시도하십시오. 비트 세트는 값의 여러 유형으로 초기화 할 수 있습니다, 하나가되는 통합 유형 :

int main() { 
    int value = 201; 
    std::bitset<8> bs(value); 
    cout << bs.to_string(); 
} 
0

이 그냥 대체 솔루션으로, bitset없이 할 매우 간단하다

std::string ucharToBitString(unsigned char x) 
{ 
    std::string s = ""; 
    for(int i = 0; i < 8; i++) 
    { 
     s += (x & 128) ? "1" : "0" ; 
     x <<= 1; 
    } 
    return s; 
} 

편집 : 주석에 따라 가장 중요한 비트가 먼저 처리됩니다.

+0

가장 중요한 비트가 먼저 또는 최하위 비트인지 먼저 표시 할 수 있습니다. –

+0

답장을 보내 주셔서 감사합니다. while 루프를 사용하여 종료되었습니다. – sam

관련 문제