在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 描述性研究 僅描述乙個事件或現狀,不能作為 分析的直接證據,目的是提出 假設,為進一步分析性研究提供參考。沒有對照組,可以說是前瞻性也可以是回顧性研究。論證強度較...