c语言,将一个二进制数转换成10进制数输出?

2024年10月30日 20:23
有3个网友回答
网友(1):

将二进制转成十进制,按权值展开求和即可。

可以通过以下代码解决:

#include

#include

int main()

{

char a[17];

gets(a);

int len,i,sum=0,m,j;

len=strlen(a);

if(len<=16)

{

for(i=0;i

{

m=1;

if(a[i]=='1')

{

for(j=1;j<=len-i-1;j++)

m*=2;

sum+=m;

}

}

printf("%d",sum);

}

return 0;

}

网友(2):

#include
#include
#include
void fun()
{
int n=0,k=0,len;
char num[100];
gets(num);
len=strlen(num);
for(int i=len-1;i>=0;i--)
{
n=n+(num[i]-'0')*(int)pow(2.0,k);
k++;
}
printf("%d\n",n);
}
int main()
{
fun();
return 0;
}

网友(3):

#include
#include
#include

int main()
{
char str[33];
scanf("%s", str);
int len = strlen(str);
int i, sum=0;
for(i=0; i{
sum += (str[i]-'0') * (int)pow(2, len-i-1);
}
printf("%d", sum);
}