c語言程序使用的內存存儲內容特點 C語言中浮點數的儲存,有什么區別?
C語言中浮點數的儲存,有什么區別?C語言里對float類型數據的它表示范圍為-3.4*10^38~3.4*10^38。soft為-1.7*10^-308~1.7*10^308,halfextra為-1
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)函數調用實的現場保護和前往地址;