注册 登录
编程论坛 C语言论坛

为什么这个二进制转十进制算出来的结果不正确

其名为鲲 发布于 2021-04-28 18:59, 1431 次点击
#include<math.h>
#include<string.h>
int main()
{int i,b,c;
char s[50];
gets(s);
b=strlen(s);
--b;
i=0;
c=0;
for(b;b>=0;--b)
{c=c+s[b]*pow(2,i++);
}
printf("%d",c);

2 回复
#2
其名为鲲2021-04-28 19:04
求解答
#3
apull2021-04-28 21:58
s[b]是char类型,保存的是字符'0','1'的ascii码,不是int的0,1
程序代码:

for(;b>=0;--b)
    {
        c+=(s[b]-'0')*pow(2,i++);
    }
1