求C语言中float型数据的表示范围

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求C语言中float型数据的表示范围相关的知识,希望对你有一定的参考价值。

我们的老谭的C教材上说float型数据的范围是-3.4×10的-38次方至3.4×10的-38次方。我算了一下38次方没错,就是不知道那个3.4怎么来的。 我觉得关键在于小数点的位置和指数的近似处理,不知哪位强人能完整的推出这个结论。感激不尽。其中24位尾数,8位指数(均包括符号位) 一定要完整的详细推出正确结论阿。

参考技术A 根据我的计算vc
是使用26位尾数,6位指数
26位尾数中
有一个符号位
也就是最大的数是+/-(2^25-1)*(+/-2^5-1)
也就是+/-33554431e+/-31
也就是+/-3.4e+/-38

C语言中float型数据怎么 取整数部分算法 或取小数部分

参考技术A

分析如下:

一种简单的办法是直接强制转换到int型就是整数部分。减去这个int型就是小数部分了。

代码如下:

float n=12.223;
int x=(int)n;
float y=n-(float)x;

得出的x为数据的整数部分,y为数据的小数部分。

拓展资料

浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点数使用 IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 excess-127 二进制指数和一个 23 位尾数。尾数表示一个介于 1.0 和 2.0 之间的数。由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。此表示形式为 float 类型提供了一个大约在-3.4E+38 和 3.4E+38 之间的范围。

(资料来源:百度百科:FLOAT)

以上是关于求C语言中float型数据的表示范围的主要内容,如果未能解决你的问题,请参考以下文章

关于c语言float取值范围

c语言float可以输入指数吗

c语言中计算int,float,double,char四种数据类型所能表示的数据范围

C语言中float是啥意思

C语言中float型数据表示的最大数字到底是多少啊?

关于C语言中double型输出的问题