/*
*/
#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;
}
不太明白你的意思,不知道你是不是求十进制,这个可以得出对应十进制的数值。