如何输入二进制数

时间:2014-06-19 15:53:36

标签: c++ bit-manipulation palindrome

我正在检查二进制数是否是回文。 我的实现可以检查4或5,但是一旦我输入1001,它将其解释为一千零一而不是9.如何做到这一点?

 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 个答案:

答案 0 :(得分: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;
}