浮點型在記憶體中的儲存

2021-08-15 15:39:51 字數 1164 閱讀 4022

以單精度型別變數為例

1.國際標準ieee(電氣和電子工程協會)754,任意乙個浮點數都可以表示為(-1)^s*m*2^e,其中

(1)s表示符號位,當資料為負時s = 1,當資料為正時s = 0;

(2)m表示有效數字位,它在記憶體中佔據23個位元位,它的取值範圍是大於等於1,小於2,而計算機對m進行存的時候只存小數點後的資料,所以程式設計師在進行取資料時必須給其加1,而計算機在進行存的時候必須將其小數點前的1減掉;

(3)e代表指數字,它是乙個無符號數,所以程式設計師將e從記憶體中取出時必須減去127,而將e存入記憶體中時必須加上127。

2.ieee的幾種特殊規定

(1)對於e全為0的時候,取出來的資料便應該是-127,這個時候也就意味著指數為-127,而有效數字為1點幾,再乘以乙個2^-127,此時會是乙個特別小的資料,標準規定,此時資料便是0

(2)對於e全為1時,表示資料為無窮大(小),具體得看資料的符號位

(3)對於不全為0或者不全為1,資料的訪問遵守1

3.練習題

對上述練習題的解析:

int num = 9;

在計算機記憶體儲存形式為:0000

0000

0000

0000

0000

0000

0000

1001,此時e全為0,所有列印出來的浮點數為0

*p_float = (*float)#

(-1)^0*1.001*2^3

01000

0010

0010000

0000

0000

0000

0000

由上位元位序列可知,列印出來的浮點數字9,整數為乙個巨大的數字

3.雙精度只是中間數由127變為1023,其他的都不變,這裡不再做敘述

浮點型資料在記憶體中的儲存

原文 學計算機n年了,一年懶得去了解小數的存放,趁今天想知道double資料存放格式,了解了一下,真是懶不得,無論什麼樣的基礎知道,早晚一天還是要學到心中的。一 浮點型資料在記憶體中儲存的表示 實數在記憶體中以規範化的浮點數存放,包括數符 階碼 尾數。數的精度取決於尾數的尾數。比如32位機上floa...

浮點型資料在記憶體中的儲存

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,二進...

整數 浮點型在記憶體中儲存

1 整數在記憶體中的儲存 在計算機系統中,整數統一用補碼來表示和儲存。這裡普及一下 原碼 反碼 補碼 這三種表示方式均有符號位和數值為兩部分,符號位是首位用 0 表示 正數 用 1 表示 負數 原碼 直接將二進位制按照正負數的形式翻譯成二進位制就可以了。反碼 將原碼的符號位不變,其他位按位取反就可以...