您的位置:首页 > 其它

二进制 带小数 的字符串 转化为 float型

2011-08-11 16:08 225 查看
#include "iostream.h"

#include "stdio.h"

#include "string.h"

const int MAX=10;

float convert(const char* str)

{

float sum1 = 0.0;

float sum2 = 0.0;

int i = 0;

int idx = 0;

int len = strlen(str);

while(str[idx]!='.')

idx++;

printf("len is %d, index is %d\n", len, idx);

i = idx;

while(i--)

{

sum1 = (sum1*2) + (str[i]-'0'); //整数部分

}

i = len-1;

while(i>idx)

{

sum2 = (sum2 + (str[i]-'0'))*0.5; //重点所在啊,小数部分0.11 = (1/2) +(1/4)=0.75

i--;

}

printf("sum1 is %f, sum2 is %f\n", sum1, sum2);

return (sum1+sum2);

}

int main(int argc, char *argv[])

{

float ret = 0.0;

char str[MAX];

while(1)

{

printf("Please input the str:\n");

scanf("%s", str);

ret = convert(str);

printf("%f\n",ret);

}

// system("PAUSE");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: