3.14159
1e10
float、double、long
double
規定1.任意乙個二進位制浮點數f都可以表達成下面的形式:
(-1)
^s*m*2^e
(-1)^s
表示符號位,當s=
0時,f為正數;當s=
1時,f為負數。
m表示有效數字,大於等於,小於2.2
^e表示指數字。
舉例說明:
十進位制的5.0,二進位制是101.0,相當於1.01*2^2.
按照以上規定,可以得出s=0,m=1.01,e=2.
規定2.對於32位的浮點數,最高的一位是符號位s,接著的8位是指數e,剩下的23位為有效數字m。
規定3.對於m和e還有一些特別規定
在計算機內部儲存時,我們前面規定1說明m的範圍是大於等於1,小於2,也就是說m是乙個1點幾的數。因此,這個數的第一位總是1,也就會被計算機預設為1,因此在儲存時可以被捨去,只儲存後面的部分,等到讀取時在講第一位的1加上去。這樣做的目的是節省一位有效空間,以32位浮點數來說,留給m的只有23位,將第一位的1捨去之後,就相當於可以儲存24位有效數字。
至於指數e,首先e是乙個無符號整數
如果e為8位,取值範圍就是0~255,但是,我們知道科學記數法中的e是可以出現負數的,所以我們規定,存入記憶體的e的真實值必須再加乙個中間數,對於8位的e這個中間數是127;對於11的e,這個中間數是1023。
另外,我們還需要討論一下e的情況:
這時的e等於1-127(1-1023)即為真實值,有效數字也不再加上前面的1,而是還原為0.***的小數。
目的是為了表示+0和-0,以及無限接近於0的數字。
這時,如果有效數字全為0,表示無窮大,正負由s決定。
浮點型資料在記憶體中的儲存
原文 學計算機n年了,一年懶得去了解小數的存放,趁今天想知道double資料存放格式,了解了一下,真是懶不得,無論什麼樣的基礎知道,早晚一天還是要學到心中的。一 浮點型資料在記憶體中儲存的表示 實數在記憶體中以規範化的浮點數存放,包括數符 階碼 尾數。數的精度取決於尾數的尾數。比如32位機上floa...
浮點型在記憶體中的儲存
以單精度型別變數為例 1.國際標準ieee 電氣和電子工程協會 754,任意乙個浮點數都可以表示為 1 s m 2 e,其中 1 s表示符號位,當資料為負時s 1,當資料為正時s 0 2 m表示有效數字位,它在記憶體中佔據23個位元位,它的取值範圍是大於等於1,小於2,而計算機對m進行存的時候只存小...
整數 浮點型在記憶體中儲存
1 整數在記憶體中的儲存 在計算機系統中,整數統一用補碼來表示和儲存。這裡普及一下 原碼 反碼 補碼 這三種表示方式均有符號位和數值為兩部分,符號位是首位用 0 表示 正數 用 1 表示 負數 原碼 直接將二進位制按照正負數的形式翻譯成二進位制就可以了。反碼 將原碼的符號位不變,其他位按位取反就可以...