關於浮點數在C語言中的儲存問題,C語言實型 浮點型 資料在記憶體中的存放形式

時間 2022-02-09 00:40:10

1樓:自我程式設計

寫c==2.468f就可以。

浮點數常量預設是double型。你直接寫2.468會強轉型。

c語言實型(浮點型)資料在記憶體中的存放形式

2樓:gta小雞

實數分為float型和double型,它們分別對應ieee 754標準中的單精度浮點數和雙精度浮點數型別,在記憶體中的儲存形式遵守ieee 754浮點數標準。以float型別資料為例,3.14159表示成二進位制為11.

0010010000111111001111......,規格化後表示為1.10010010000111111001111×2^1(小數點後保留23位有效數字,因為ieee 754標準規定的尾數為23位);指數為1,故階碼為1+127=128=10000000;這是乙個正數故符號位為0,因此它在記憶體中的表示形式是0 10000000 10010010000111111001111,寫成16進製為40490fcf。

c語言浮點數的儲存方式?為何浮點數儲存不準確?那個**是什麼意思?

3樓:匿名使用者

c語言中,無論是單精度還是雙精度在儲存中都分為三個部分:

1. 符號位(sign) : 0代表正,1代表為負2.

指數字(exponent)(注:也叫階碼):用於儲存科學計數法中的指數資料,並且採用移位儲存(注:

移碼編碼表示)

3. 尾數部分(mantissa):尾數部分關於不精確是由於十進位制小數部分化二進位制,常常化不盡。如同無限迴圈小數,最後有截斷誤差。

**中的是float型的變數的儲存上的格式。

4樓:匿名使用者

圖中已經說明了。

這是乙個單精度浮點數。

每個單精度浮點數占用四個位元組記憶體空間。這四個位元組在內部有不同的功能。

四個位元組一共由32位。

計算機中的浮點數就是指數學中的科學記數法。不過計算機中儲存二進位制,而科學記數法是10進製的。

+1.34534534×10^3(用^後面的3表示10的冪)其中,第0位到22位,表示尾數,就是用於1.34534534的部分。

第23位到30位,表示指數,用於儲存3。

第31位,表示符號位,用於儲存符號。

浮點數儲存不精確,在於計算不結果不精確。

這種計算不精確,不在於計算本身,而在於浮點數表示範圍是有限的,當計算結果大於或小於浮點數表示範圍時,它實際儲存結果出現問題。

舉個例子,

讓你計算325+925。結果只能儲存三位數,最終應該是多少?肯定不是1250了,因為它是四位數。

關於c語言浮點數問題

5樓:匿名使用者

標準c語言支援的浮點數符合ieee格式,是二進位制浮點數,並不是乙個位元組存放乙個十進位製小數字的。

關於ieee浮點數,可以參考這裡

至於這裡的輸出問題,如ls所說,是printf預設輸出問題。如果使用%f和%lf格式控制符輸出浮點數,預設輸出保留6位十進位制小數,自動四捨五入。用%.

nf可以控制輸出精度,n是表示保留小數字數的正整數。

6樓:杭瑋琪

把程式改成就行了

#include

void main()

在c語言當中,在printf語句當中的%後面可以選擇加上輸出寬度選擇例如:%3.4,

整數部分代表輸入的整數部分的有效位數,小數部分代表輸入的小數部分的有效位數,如上輸出就是設定輸出整數的有效位數為3,小數的有效位數為4。

如果實際輸出大於說設定的,則以實際輸出的有效位數為主如果沒有對字元設定,那輸出浮點數就會隱含有6位小數除了有效位數的設定,還可以設定標誌字元,有興趣可以找c語言的教程看看

7樓:匿名使用者

%f預設是輸出6位小數,你可以用%.1f,%.2f來控制小數點後位數

C語言中怎樣判斷輸入的是整數還是浮點數

scanf s,str 先存成字串if null strchr str,等於null是沒有找到小數點else sscanf str,lf,b 再從字串格式化成浮點型例如 inti floatf doubled 輸入i是整數,輸入f是float型,輸入d是double型 2 看輸入格式scanf d ...

c語言如何把整型轉換成浮點數,C語言如何把整型轉換成浮點數?

程式猿3號 c語言有以下幾種取整方法 1 直接賦值給整數變數。如 int i 2.5 或 i int 2.5 這種方法採用的是捨去小數部分,能用於你的問題。2 c c 中的整數除法運算子 本身就有取整功能 int int 而下面介紹的取整函式返回值是double。整數除法對正數的取整是捨去小數部分,...

在c 環境中,雙精度浮點數範圍的由來

簡單來說吧,如果我有5個位置,能放0 9,那麼我能用這5個位置表示多大的數呢.直觀的想法當然是99999,但如果我只對數處在哪個數量級感興趣的話,我就可以用類似科學計數法來表示數 比如9.99x10的99次方,或是9.9x10的999次方,那樣就可以表示很大的數了.計算機中的浮點數就是用了類似的原理...