#include "stdio.h"#include "stdlib.h"#include "string.h"#define datatype int#define MAX_SIZE 50#define OK  1#define Err 0 /***        Code :     By YangLong    2014年9月21日,**        0x00:  函数说明 *                    XD2B 将任意一个 浮点数 转换为 2 进制*                    XD2B(double f,char* s, bool z)*                    参数一:  需要转换的浮点数*                    参数二:  存放结果的字符数组*                    参数三:  z = true 时 代表 整数转换*                             z = false 时 表示浮点数 转换**        0x01    IEEE754(char* s)*                    参数一: 将 XD2B中的字符数组 转换为 IEEE754格式*        0x02    不足:*                    结果显示为 拆分项*                    要链接起来 用 字符串 拼接 就行**        0x03    待优化: *                    结果显示为    16进制*                    将IEEE754转换为真值**    不是程序复杂,而是编写的有点乱。*/typedef struct Stack{        datatype data[MAX_SIZE];    int top;}stk;void Init(stk* s){    s->top = -1;}bool push(stk *s,datatype d){    if(s->top+1>MAX_SIZE-1)    {        printf(" 'push' Error: Overflow!\n");                exit(0);    }        s->data[++s->top] = d;    return OK;}datatype pop(stk* s){    if(s->top<0)    {            printf(" 'pop' Error: Overflow!");                exit(0);    }    datatype data = s->data[s->top--];    return data;}bool IsEmpty(stk* s){    return s->top == -1 ? OK : Err;}void XD2B(double f,char* s, bool z){    int i=0,j=0;    stk ss;    Init(&ss);    if(f<0)     {        s[0] = '1';        j = 1;        f = f*(-1.0);    }    else    {        s[0] = '0';        j = 1;    }    int q = (int)f;    while(q)    {        push(&ss,q%2);        q = q/2;    }    while(!IsEmpty(&ss))    {        s[j++] = pop(&ss) + '0';    }    if(z)        // z×××运算            return;    s[j++] = '.';    f = f - (int)f;        while(i<23)    {        f = f*2;        s[j+i] = (int)f + '0';        f = f - (int)f;        i++;    }}void IEEE754(char* s)    {        int j=1,i = 0,q,e,jm=0;    while(s[++i]!='.');    int m=1;    if(i>1)    {        while(s[m]!='1' && m
:");    char s[80]={0};    double df=0.0;    scanf("%lf",&df);    XD2B(df,s,false);    printf("%.16lf 二进制小数: ",df);    bool flag =true;    int j = 0;    for(int i=0;i