在學習計組的過程中,經常忘記一些細節。比如「符號位」、「規格化」等等概念。浮點數的規格化這幾天發覺,如果能夠從這些東西的背景去考慮問題的話,可能就不會有這麼多的遺忘了。
浮點數的階碼一般使用移碼來表示,並不牽扯到規格化。當尾數m是原碼,只要滿足1/2<=|m|<1即可。規格化特指尾數的規格化。尾數可能是補碼或者原碼。
當尾數m是補碼,當m是正數,範圍同原碼;當m是負數,範圍成為-1=float/double
數符階碼
尾數1bit
8bit /11bit
23bit/52bit
階碼:ieee754階碼的偏移量為2(n-1)-1;這樣的話正數比負數能夠多表示乙個數。如果是8位機器的話 ,移碼的範圍就是-127~128;
尾數:規格化的尾數預設為1.***x…因此不表示小數點前面的1,因此float型別尾數可以表示的精度是24位;
在我上課的時候,有同學問,既然前面預設有乙個1,那0怎麼表示?老師果斷稱讚這是乙個好問題,接著回答了階碼的全0和全1並不會出現,它們作為特殊標記來存在,這種特殊標記出現時,尾數前面沒有預設的1
當階碼和尾數都為0時,根據數符的0/1表示+/-;
當階碼全為0,尾數非零時,表示非規格化數,階碼預設最小為-126;
當階碼全為1,尾數全為0,根據數符的0/1表示+∞/-∞;
當階碼全為1,尾數非零時,表示非數nans。
其他情況,就是規格化的數啦~~~
//這裡的移碼和補碼的轉化和前面的不同,因為偏移量比前面少了乙個1,
//因此在補碼符號位取反的基礎上需要再減一;
//或者直接通過偏移量來計算;
IEEE 754格式標準,float,
float float型別數字在計算機中用4個位元組儲存。遵循ieee 754格式標準 乙個浮點數有2部分組成 底數m和指數e 底數部分 使用二進位制數來表示此浮點數的實際值 指數部分 占用8bit的二進位制數,可表示數值範圍為0 255 但是指數可正可負,所以,ieee規定,此處算出的次方必須減去...
IEEE754標準浮點數的轉換
對於乙個十進位制的的數字,當我們需要轉化為浮點數時需要按照一定的規則,而ieee754是現在應用比較廣泛的一種標準,下面是關於該標準的一些轉化規則。浮點數表示的格式 單精度 總位數 32位 符號位 1 階碼位即指數字 8 尾數字 23 指數偏移量 127 雙精度 總位數 64位 符號位 1 階碼位即...
計算機組成原理 IEEE754標準
小數點的位置可以在一定範圍內移動,能擴大表數範圍。任一r進製數都能寫成 n 1 s re m 特別的,在計算機中浮點數的表示格式為 x 1 s 2e m 在這裡e指小數點的位置,m表示數的精度 計算機中規定用ieee754標準將浮點數規格化 當浮點數尾數非0時,最高有效位必須為1 譬如說 a 24 ...