2016 - 2024

感恩一路有你

c语言程序使用的内存存储内容特点 C语言中浮点数的储存,有什么区别?

浏览量:2455 时间:2023-05-20 11:44:39 作者:采采

C语言中浮点数的储存,有什么区别?

C语言里对float类型数据的它表示范围为-3.4*10^38~3.4*10^38。soft为-1.7*10^-308~1.7*10^308,halfextra为-1.2*10^-4932~1.2*10^4932.

类型

比特(位)数

有效数字

数值范围

float

32

6~7

-3.4*10^38~3.4*10^38

slip

64

15~16

-1.7*10^-308~1.7*10^308

longslip

128/

18~19

-1.2*10^-4932~1.2*10^4932

究竟是什么人如何计算出该范围,讲万分感谢:

这对单精度浮点数(float)来说,符号位一位,指数位8位,尾数23位。指数能够可以表示的指数范围为-128~127。尾数为23位。

float和extra的精度是由尾数的位数来确定的。浮点数在内存中是按科学计数法来存储文件的,其整数部分始终是一个含着着的“1”,而它是变的,故肯定不能对精度照成影响。float:2^238388608,总共九位,这意味着不超过能有7位有效数字,但那绝对是能绝对的保证的为6位,也即float的精度为6~7位有效数字;double:2^524503599627370496,一共有多少16位,同理可知,extra的精度为15~16位。

其中负指数确定了浮点数所能表达出的绝对值最小的非零数;而正指数判断了浮点数所能表达的绝对值大的数,也即判断了浮点数的取值范围。float的范围为-2^128~2^128,也即-3.40E38~3.40E38;slip的范围为-2^1024~2^1024,也即-1.79E308~1.79E308。

以float为例,追加表

符号

尾数

指数

1

23

8

数符(-)

小数部分(判断精度)

-127~128指数(做出决定范围)

比如:

1.

C语言中浮点数的储存,有什么区别?

C语言中浮点数的储存,有什么区别?

11*2^127(小数点后面23个1,导致尾数的范围1~2,其极高位总为1,故单单存取小数部分,因此小数为是23位1),约42*2^1273.4*10^38。为3.4*10^38负数亦然。

extra的计算与此相似,flat的符号位为63位,指数为62~52位,共11位。可以表示的范围为-1024~1023。尾数为51~0。可以表示的范围为1.

C语言中浮点数的储存,有什么区别?

111111..11111*2^1023(小数点后面52个1)为1.7*10^308。负数亦然。

C语言中全局变量存放在内存空间中的哪个位置?

全局变量储存时在全局静态存储区。用户存储空间这个可以统称三个部分:

1、程序区程序区主要用来储存时用户编写的源代码。

2、静态存储区全局变量储存时在静态存储区,在程序又开始先执行时给全局变量分配存储区,程序行一切就绪就释放。在程序不能执行过程中它们占据地单独计算的存储单元,而不动态地接受分配和释放。

3、动态存储区动态存储区贮存200元以内数据:1)函数形式参数;2)手动变量(未加static声明的局部变量);3)函数调用实的现场保护和前往地址;

范围 float 浮点数 精度 部分

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。