浮點數在記憶體中的儲存

2021-09-02 22:24:04 字數 754 閱讀 9855

浮點數在記憶體中的儲存方式與整型數字是不同的,對浮點數的儲存實際上是對ieee754中規定的s、m、e的儲存。

浮點數:float、double、long double

根據國際標準ieee754,任意乙個二進位制浮點數可以被表示成下面的形式

ieee754規定:對於32位的浮點數,最高的1個位元位為符號位s,接下來的8個位元位是指數e,剩下的23位為有效數字

對64位的浮點數,最高的1個位元位為符號位s,接下來的11個位元位是指數e,剩下的52位為有效數字。**

s表示浮點數的正負,它的取值為0/1

m表示浮點數寫成二進位制之後的有效數字。

m的儲存時從左向右儲存。

科學計數法在表示指數e時,e的取值可以為正數,也可以為負數,也可以為0。但指數部分e是乙個無符號數

當指數全部為0時,即就代表浮點數的0值。當指數全部為0時,浮點數可表示的數值範圍是分別從正數&負數無限接近0,這時有效數字不再加上第一位的1,而是還原為0.***的小數,當使用浮點數與0比較時,在底層其實是使用浮點數與一段取值範圍比較。

當指數全部為1時,當符號位為正,則表示該型別浮點數可以表示的最大的數字。

當指數全部為1時,當符號位為負,則表示該型別浮點數可以表示的最小的數字。

浮點數在記憶體中的儲存

浮點數在記憶體中的儲存 常見浮點數型別 float,double,long double.那麼浮點數在記憶體中又是如何儲存的呢,它會和整數一樣嗎?那它的小數點又是如何儲存的呢 int main 執行結果為 n和 pfloat在記憶體中明明是同一位置同一數字,為什麼浮點數和整數的讀取結果會不一樣.說明...

浮點數在記憶體中的儲存

整數在計算機記憶體儲存以二進位制儲存很容易理解,那浮點數怎麼儲存的呢?其實之所以想到要一 竟是因為類似下面這段 include intmain void 由於大意,用轉義字元 d來列印浮點數,結果顯示 為什麼是 461808600呢?我也很奇怪,然後就開始研究研究吧。當然這個也和編譯器有關,有些就會...

浮點數在記憶體中的儲存形式

浮點數 浮點型變數在計算機記憶體中占用4位元組 byte 即32 bit。遵循ieee 754格式標準。乙個浮點數由2部分組成 底數m 和指數e。mantissa 2exponent 注意,公式中的mantissa 和 exponent使用二進位制表示 底數部分 使用 進製數來表示此浮點數的實際值。...