读书人

正整数 转化成2进制 编译通过,当n gt;1就

发布时间: 2012-03-08 13:30:13 作者: rapoo

求救 正整数 转化成2进制 编译通过,当n >1就不出结果了.
#include <iostream>
using namespace std;
int er(int t)
{
int a=1,b,s=1;
for(int i=1;;i++)
{
a*=2;
if(t==a)
{
for(int j=1;j <=i;j++)
{
s*=10;
}
b=a;
}
else if(t <a)
{
if(t==0)
{
s=0;
return s;
}
else if(t==1)
{
s=1;


return s;
}
else if(t> 1)
{
for(int k=1;k <i;k++)
{
s*=10;
}
b=a/2;
}
}
}
s=s+er(t-b);
return s;
}
int main()
{
cout < < "qing shu ru n: " < <endl;
int n;
cin> > n;
cout < <er(n) < <endl;
return 0;
}

[解决办法]
char *itoa(
int value,
char *str,
int radix
);

char c[20]={0};
itoa(123,c,2);
cout < <c < <endl;

读书人网 >C++

热点推荐