#include
using namespace std;
void ReverseArr(int n)
{
int m=n;
int x,count;
int i=0;
char a[20],b[20];
for(int a1=0;a1
{
a[i]=0;
b[i]=0;
}
if(m
return;
if(m>=0)
{
while(m!=0)
{
x=m%2;
m=m/2;
a[i]=x;
i++;
}
}
count =i;
while(i>0)
printf("%d",a[--i]);
printf("\n");
while(i
{
int j=0;
b[j]=a[i++];
printf("%d",b[j]);
j++;
}
printf("\n");
int sum=0;
for(int i1=count-1;i1>=0;i1--)
{
sum*=2;
sum+=b[i1]-'0';
}
printf("%d",sum);
printf("\n");
}
int main()
{
int n;
cin>>n;
ReverseArr(n);
return 0;
}
输入8
输出:
1000
0001
1
在最后转换为十进制的时候输出却是-1447
求解答