编写程序把一个保存有二进制小数的字符数组转换为浮点数
#include <stdio.h> #include <stdlib.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; 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; }
|
阅读(1368) | 评论(0) | 转发(0) |