如题所述
第1个回答 2017-01-12
先把二进制读成字符串, 或者逐个读入字符
然后, 将字符串转为整型。
int bin_to_dec(char *s){
int r = 0;
while(*s)
{
r<<1;
if(*s=='1')
r|=1;
}
return r;
}
int main()
{
char s[40];
gets(s);
printf("%d\n", bin_to_dec(s));
return 0;
}本回答被网友采纳
第2个回答 2017-01-12
#include<stdio.h>
#include<string.h>
#include<math.h>
int binToDec(char *bin)
{
int dec=0;
int n=strlen(bin);
for(int i=0;i<n;i++)
{
if(bin[i]=='1') dec+=pow(2,n-1-i);
}
return dec;
}
int main()
{
char bin[32];
printf("请输入一个二进制数:");
scanf("%s",bin);
printf("二进制数%s相当于十进制数%d\n",bin,binToDec(bin));
return 0;
}
#include<string.h>
#include<math.h>
int binToDec(char *bin)
{
int dec=0;
int n=strlen(bin);
for(int i=0;i<n;i++)
{
if(bin[i]=='1') dec+=pow(2,n-1-i);
}
return dec;
}
int main()
{
char bin[32];
printf("请输入一个二进制数:");
scanf("%s",bin);
printf("二进制数%s相当于十进制数%d\n",bin,binToDec(bin));
return 0;
}