2014-06-19 1 views
0

이진수가 회귀 식인지 아닌지 확인하는 질문을했습니다. 내가 수행 한 구현은 4 또는 5를 확인할 수 있었지만 1001에 들어서 자마자 1000과 1로 해석했습니다. 어떻게해야합니까?이진수를 입력하는 방법

unsigned int rev=0; 
unsigned int temp=x; 

while(temp!=0) 
{ 
    cout<<rev<<" "; 
    rev=(rev<<1)|(temp%2); 
    temp=temp>>1; 
    cout<<endl<<temp; 

} 
cout<<rev<<" "; 
if(rev==x) 
    return true; 
else 
    return false; 
+1

을 사용할 수 있습니다 당신은 어떻게 당신이 – Ben

+0

가 표시하거나 현재 복용하는 방법 무엇을 설명 할 시도 무엇 게시에 대해? 변수/매개 변수 (데이터 유형)를 어떻게 저장하고 있습니까? – taronish4

+0

@Ben 나는 귀하의 요청에 따라 편집했습니다 –

답변

1

당신은 strtol 함수 또는 기타 기능

#include <iostream> 

int main(int argc, _TCHAR* argv[]) 
{ 
    long x; 
    std::string str; 
    std::cin >> str; 
    char * pEnd; 
    x = strtol(str.c_str(), &pEnd, 2); 
    std::cout << x << std::endl; 
    return 0; 
} 
+0

이것은 매우 좋습니다 ... 고맙습니다 톤 ... 미안 캔트 upvote 15 명성이 필요합니다 .. :) –

+1

@ SarasArya 당신의 문제를 해결하면 그의 대답을 수락하실 수 있습니다 – user3288829