c float型別研究

2021-05-12 17:27:27 字數 748 閱讀 6252

在c++

中float

資料型別是採用科學計數法來表示的,就像下面這樣:

其中s位符號位,佔一位的二進位制數,

1為正,

0為負,

t為底數,按二進位制數儲存,佔

23位,

e為指數部分,佔

8位。結構如下:

float 在記憶體中是按逆位元組的儲存的:

其中尾數是這樣的形式:1.t1t2t3...t23

。轉換為十進位制的數:

因為指數可以是負數,c++

指數部分按原來的指數加上

127得到的結果來儲存,所以,從記憶體的得到的指數部分要減去

127才能得到原來的指數。

float在記憶體的儲存形式可能是下面這樣:

struct float ;

並非是下面:

struct float ;

因為float 

在記憶體中是按逆位元組的儲存的,可以看上面的。

可以用下面的程式來測試:

結果如下:

先來把10.5

轉換為二進位制數:

1010.

1,轉換為科學計數法:1.0101 *(2

)^3,所以尾數部分為:

,對應的十進位制數是:2621440.

指數部分為3

,加上127

後為130。

符號位為1

,表示為正數。

下面的程式把float

數轉換為十進位制數。

C float的記憶體布局

ieee754標準中,浮點數的記憶體布局 以下僅以float 記憶體中佔據4個位元組,32bits 來說明,double 8個位元組,64bits 同理,只是有細微的差別。float的記憶體分布 ieee754規定,32bit的float在記憶體中是這樣分布的 符號位 s 階碼 e 尾數 m 18 ...

Oracle NUMBER型別研究

oracle提供了強大的資料型別number,他的格式為oracle number datatype 語法 number precision scale 其中簡稱 precision p scale s number p,s 範圍 1 p 38,84 s 127 儲存資料範圍 1.0e 130 nu...

臨床研究有哪些常見型別?

一 原始研究 根據自己的臨床經驗,在臨床實踐中發現並總結歸納一定規律的原創研究。1 觀察性研究 研究過程中未對受試者施加人為干預措施。1 描述性研究 僅描述乙個事件或現狀,不能作為 分析的直接證據,目的是提出 假設,為進一步分析性研究提供參考。沒有對照組,可以說是前瞻性也可以是回顧性研究。論證強度較...