//正数 二进制到十进制转换
#include<stdio.h>
#include<string.h>
int factorial(int m,int n);
int sum(char* str);
int main(void)
{
char str[100];
puts("Enter a string contains 0 1");
while(gets(str)!=NULL && str[0]!='\0')
{
printf("The result is %d\n",sum(str));
puts("Enter a string contains 0 1(empty line to quit)");
}
puts("886!");
return 0;
}
int factorial(int m,int n)
{
if(0 == n)
return 1;
else
return m*factorial(m,n-1);
}
int sum(char* str)
{
int j=strlen(str)-1;
int result=0;
int i=0;
while(str[i])
{
result+=(str[i]-'0')*factorial(2,j); //当这里的2变成数字*时,就可以计算*进制到十进制的转换。
i++; //由于这里没有定义符号集,只能计算小于十进制的数字到十进制的转换,即*<10
j--;
}
return result;
}
二进制转化成十进制
最新推荐文章于 2021-07-29 04:27:37 发布