国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

C語言:深度刨析數據在內存中的存儲——浮點型數據

YanceyOfficial / 3123人閱讀

摘要:一浮點型數據及其取值范圍二浮點型數據在內存中的存儲一小數的二進制十進制轉二進制整數部分與整數原理相同,按照整數二進制轉換的規則,寫成對應的二進制數。全為表示浮點數的最大值或者最小值。

一、浮點型數據及其取值范圍

二、浮點型數據在內存中的存儲

(一)小數的二進制

十進制轉二進制

整數部分: 與整數原理相同,按照整數二進制轉換的規則,寫成對應的二進制數。
小數部分: 十進制小數轉換成二進制小數采用乘2取整,順序排列法。具體做法是:用2乘以十進制地小數,將積的整數部分取出,作為十分位,再用2乘以剩下的小數部分,再將積的整數部分取出作百分位,重復進行,直到達到要求的精度。
例如:將十進制1.8125轉換成二進制

所以1.8125的二進制為1.1101。

二進制轉十進制

把二進制數寫成加權系數展開形式,按十進制的加法規則求和,即按權相加
例如:將二進制數1.1101轉換為十進制

(二)科學計數法

根據國際標準IEEE(電氣和電子工程協會) 754,任意一個二進制浮點數V可以表示成下面的形式:

  • (-1)^S * M * 2^E
  • (-1)^S表示符號位,當s=0,V為正數;當s=1,V為負數。
  • M表示有效數字,大于等于1,小于2。
  • 2^E表示指數位。
    例如:對于上面的二進制浮點數101.1101,S為0,M為1.011101,E為6,則科學計數法表示為:(-1)^0 * 1.011101* 2^6

(三)存儲模型

單精度浮點型

IEEE 754規定: 對于32位的浮點數,最高的1位是符號位s,接著的8位是指數E,剩下的23位為有效數字M。
如圖表示float型在內存中的存儲:

符號位S

S的存儲較為簡單,只有1和0兩種情況:

  • 當S等于1時,(-1)^S為負,表示負數;
  • 當S等于0時,(-1)^S為正,表示正數;

指數E

對于float型,E共有個比特8位,可表示范圍 0~255,存入數據時,加上中間數127,這樣做可以便可以表示負數,所以實際可保存數據范圍為[-127 ,128]。例如:101.1101科學計數法表示為(-1)^0 * 1.011101* 2^6,E為6,內存中放6+127=133的二進制序列,取出時同理減123即可。

有效數字M

在保存M時,默認這個數的第一位是1,因此可以被舍去,只保存后面的xxxxxx部分。比如保存1.01的時候,只保存01,等到讀取的時候,再把第一位的1加上去。這樣做的目的,是節省1位有效數字。以32位浮點數為例,留給M只有23位,將第一位的1舍去以后,等于可以保存24位有效數字。

雙精度浮點型

IEEE 754規定:對于64位的浮點數,最高的1位是符號位S,接著的11位是指數E,剩下的52位為有效數字M。

雙精度浮點型與單精度浮點型存儲原理基本類似,不再詳細敘述,區別是

  • 對于double型,E共有個比特11位,可表示范圍0~2047,存入數據時加上中間數1023,實際可表示數據范圍[-1023,1024]。
  • M共有52個比特位,能表示位數更多的有效數字。

指數E的特殊情況

E全為0
E全為0時,浮點E的真實值為0-127(或者0-1023),表示一個接近于0的很小的浮點數,還原時有效數字M不加省略的1。
所以浮點數不能直接比較大小,要考慮進制轉換時存在的誤差,不能用’==’。

E全為1
表示浮點數的最大值或者最小值。

(四)練習題

#include#includeint main(){	int n = 9;	float *pFloat = (float *)&n;	printf("n的值為:%d/n", n);	printf("*pFloat的值為:%f/n", *pFloat);	*pFloat = 9.0;	printf("num的值為:%d/n", n);	printf("*pFloat的值為:%f/n", *pFloat);	system("pause");	return 0;}


整型9在內存中的存儲:

若按float型取出打印,則解讀為:

E為全0,所以printf("*pFloat的值為:%f/n", *pFloat)語句的結果為0.000000
浮點型9.0在內存中的存儲:

這個二進制序列按整型打印時被解讀為整型數據,將這個二進制序列直接轉換為10進制即為打印結果:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122424.html

相關文章

發表評論

0條評論

YanceyOfficial

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<