C语言二进制浮点数储存方式

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:31:24
浮点数在内存中怎么储存的啊?以double为例符号、小数、指数各占几位啊?详细讲讲!

float 单精度说明符,在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。
double 双精度说明符。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。

其实记起来非常简单的- -!!
自己编个程序看看~~
void main()
{
float a;
double b;
a=33333.33333;
b=33333.33333333333333;
printf("a=%f\n,b=%f\n",a,b);
}
然后~~~
答案是
a=33333.332131
b=33333.333333
由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。(就是2131那部分)。
b 是双精度型,有效位为十六位。应该显示全部小数,但是!!!!Turbo C 规定小数后最多保留六位,其余部分四舍五入。所以答案是这个。。

这样解释的行吗?打字太累了~~~