float 在32位機上是 4個位元組的。
它的結構是這樣子的:
1位符號位 | 8 位指數字 | 23尾數字
其中指數是指以2 為底的指數, 因為指數可能為負數,比如十進位制小數0.025,就是二進位制小數0.001 (0*1/2 + 0*1/4 +1*1/8), 相當於1 *2 的-3次方。
所以規定指數字要加上127.
eg: float f=10.5;
f是正數,所以符號為是0, 10.5 相當於二進位制的 1010.1 即 1.0101 *exp(2,3). 所以指數部分為 127+3=130.
尾數部分為0101 (二進位制1.0101的尾數部分)。
所以10.5的二進位制形式為 | 0 | 10000010| 0101 0000 0000 0000 0000 000|
符號 指數 尾數
換算成十六進製制的數為 0x41280000
float型別在記憶體中的儲存
首先還是看一道題目 include stdafx.h include include using namespace std int tmain int argc,tchar argv 125.5在記憶體中的表示為 125.5轉化為二進位制 1111101.1,變為整數字為1,位1.1111011 ...
float在記憶體中的儲存
以下內容來自於 1.十進位制轉二進位制 1.1整數 11 2 5 餘 1 5 2 2 餘 1 2 2 1 餘 0 1 2 0 餘 1 0結束 11二進位制表示為 從下往上 1011 1.2小數 0.9 2 1.8 取整數部分 1 0.8 1.8的小數部分 2 1.6 取整數部分 1 0.6 2 1....
float型別資料在記憶體中如何儲存的?
float型別數字在計算機中用4個位元組儲存。遵循ieee 754格式標準 乙個浮點數有2部分組成 底數m和指數e 底數部分 使用二進位制數來表示此浮點數的實際值 指數部分 占用8bit的二進位制數,可表示數值範圍為0 255 但是指數可正可負,所以,ieee規定,此處算出的次方必須減去127才是真...