c语言程序使用的内存存储内容特点 C语言中浮点数的储存,有什么区别?
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)函数调用实的现场保护和前往地址;
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。