c语言怎么将二进制的字符串转化为整形,

我这里是读取dht11的温湿度,数组buf【0】里面放了八位二进制字符串,我想把它转化为整形和具体数值进行比较,或者有没有别的办法进行比较的?该怎么解决,多谢了。

/*

*/

#include<string.h>
#include<stdio.h>
#include<math.h>


int convert(char*);

int main(void)
{
    char * buf = "10110110";
    int res = 0;


    res = convert(buf);       //函数调用

    printf("%s-->%d\n", buf, res);
}


//二进制字符串转化为十进制
int convert(char * buf)
{
    int i = 0;
    int len = 8;    //确定是8位?否则求长度
    int res = 0;

    for(i; i < len; i++){

        if ( !(buf[i]=='0' || buf[i]=='1') ){
            printf("invalid buffer!\n");
            return 256; //不是01字符串直接返回
        }

        res += (buf[i]-'0')*pow(2, len-i-1);   //计算该字符串对应十进制的值,pow()求幂


    }

    return res;
}

不太明白你的意思,不知道你是不是求十进制,这个可以得出对应十进制的数值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-28
其实现在这个 92dd.icu 就是的,询所在地专家,报价单,明细表,知名度
相似回答