我正在检查二进制数是否是回文。 我的实现可以检查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;
答案 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;
}