C语言问题,求助大神

C语言问题,求助大神二进制串转换到整数的函数

#include<stdio.h>
int bin2int(const char s[]);
int main()
{
    printf("转10进制:%d\n",bin2int("11111111"));
    return 0;
}
int bin2int(const char s[])
{
    int i,n=0;
    for(i=0;s[i]!='\0'&&(s[i]=='0'||s[i]=='1');i++)
    {
        n=n*2+(s[i]-'0');
    }
    return n;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-09

书上已经说得很清楚了啊

哪里有什么不明白吗?

不过 其实这是一种很低效的方法.

更高效的是

int bin2int(const char *p)
{
    int r=0;
    while(*p) r=(r<<1)|(*p++&1);
    return r;
}

本回答被网友采纳
相似回答