有两种计算方法,运行的结果是完全相同的:
一是采用位运算的方法:
#include
int main()
{ int n,i;
scanf("%d",&n);
for(i=31;i>=0;i--)
printf("%d",(n&(1< return 0;
}
二是采用楼主指定的方法:
#include
int a[32];
int main()
{ int n,i,k=0;
scanf("%d",&n);
if(n<0)k=1;
for(i=31;n;i--)
{a[i]=n%2;
n/=2;
}
if(k==1)
{for(i=31;i>=0;i--)
a[i]=1+a[i];
for(i=31;a[i];i--)
a[i]=0;
a[i]=1;
}
for(i=0;i<32;i++)
printf("%d",a[i]);
return 0;
}
C语言_010_二进制转十进制_上
有一种骚操作可以很快实现这个
发不了代码就发图吧emmm
得到的结果确实是没问题的emmm
如果你是c语言不是c++的话,可以了解一下这样搞