输出内存中的存储二进制
											输入一个实数(正数负数还有整数浮点型数),输出对应的double型内存中的存储二进制表示,同时输出对应的float型在内存中的存储二进制表示。求指点,我是一名学生,急着教作用										
					
	 程序代码:
程序代码:
/*
http://bbs.bccn.net/thread-444513-1-1.html
输入一个实数(正数负数还有整数浮点型数),输出对应的double型内存中的存储二进制表示,同时输出对应的float型在内存中的存储二进制表示。
*/
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    double value;
    unsigned char* p = NULL;
    int index;
    do
    {
        printf_s("Input a double value: ");
        fflush(stdin);
    } while (scanf_s("%lf", &value) != 1);
    printf_s("The value is %f\n", value);
    printf_s("Memory image: ");
    p = (unsigned char*)&value;
    for (index = 0; index < sizeof(value); ++index)
    {
        printf_s("%02X ", *p++);
    }
    putchar('\n');
    printf_s("\nPress any key to continue...");
    fflush(stdin);
    getchar();
    return EXIT_SUCCESS;
}
										
					
	
 程序代码:
程序代码:
    p = (unsigned char*)&value;
    for (index = 0; index < sizeof(value); ++index)
    {
        printf_s("%02X ", *p++);
    }

 程序代码:
程序代码:#include <stdio.h>
void setbin(char *buf,unsigned char *p,int l)
{//把p指向的长度为l的数据转换为二进制显示效果放到buf数组中
    int i,j,k,n,a;
    buf[0]=0;
    for(i=0,k=0;i<l;i++)
    {
        a=p[i];
        for(j=0;j<8;j++,k++)
        {
            if((l==4&&(k==23||k==31))||(l==8&&(k==52||k==63)))
            {//处理浮点数符号位、指数、尾数
                for(n=0;buf[n];n++);
                for(;n>=0;n--)buf[n+1]=buf[n];  //buf数组数据右移一位
                buf[0]='-';
            }
            for(n=0;buf[n];n++);
            for(;n>=0;n--)buf[n+1]=buf[n];  //buf数组数据右移一位
            buf[0]='0';
            if(a%2)buf[0]='1';
            a/=2;
        }
    }
}
void main()
{
    float a;
    double b;
    unsigned char *p;
    char c[255];
    printf("输入实数(q/Q退出):");
    while(scanf("%lf",&b))
    {
        a=(float)b;
        printf("显示数据:%f   显示格式:符号位-指数-尾数\n",b);
        p=(unsigned char*)&a;
        setbin(c,p,sizeof(a));
        printf("单精度:%s\n",c);
        p=(unsigned char*)&b;
        setbin(c,p,sizeof(b));
        printf("双精度:%s\n",c);
        printf("\n输入实数(q/Q退出):");
    }
}