C語言高階 浮點數的秘密03

2022-08-26 02:39:09 字數 664 閱讀 3891

浮點數在記憶體中的儲存方式為:符號位 指數字 尾數

型別f符號位

指數尾數

float

1位(第31位)

8位(第23位--30位)

23位(第0--22位)

double

1位(第63位)

11位(第52位--62位)

52位(第0--51位)

浮點數的轉換:

對於指數6:

實數8.25在記憶體中的float表實:8.25的二進位製表實:1000.01-》1.00001*(2^3)

記憶體中8.25的float表示:

**示例1:

#include int

main()

用float存貯8.25,然後用乙個unsigned int型別的指標指向它,最後輸出這個指標類容的16進製制

有趣的問題:int型別的存貯範圍是 -2^31~~2^31-1,float的存貯範圍是-3.4*10^38~~3.4*10^38,為什莫在記憶體中都是4個位元組,但是存貯的範圍差距這莫大?

**示例2:

#include int

main()

為什莫輸出結果會折磨奇怪呢,就是因為浮點數不是精確的,它是不連續的存在間隙

小結:

c語言整數轉浮點數 浮點數的秘密

我們在學習 c 語言時,通常認為浮點數和小數是等價的,並沒有嚴格區分它們的概念,這也並沒有影響到我們的學習,原因就是浮點數和小數是繫結在一起的,只有小數才使用浮點格式來儲存。其實,整數和小數可以都使用定點格式來儲存,也可以都使用浮點格式來儲存,但實際情況卻是,c 語言使用定點格式儲存整數,使用浮點格...

C語言高階剖析 3 浮點數的秘密

浮點數在記憶體中的儲存方式為 符號位,指數,尾數 型別符號位 指數尾數 float 1位 第31位 8位 第23 30位 23位 第0 22位 double 1位 第63位 11位 第52 62位 52位 第0 51位 float 與 double 型別的資料在計算機內部的表示法是相同的,但由於所佔...

3 浮點數的秘密

浮點數在記憶體的儲存方式為 s m 2 n主要由三部分構成 符號位 指數 n 尾數 m 型別符號位 指數尾數 float 1位 第31位 8位 第23 30位 23位 第0 22位 double 1位 第63位 11位 第52 62位 52位 第0 51位 float和double型別的資料在計算機...