摘要:一浮點型數據及其取值范圍二浮點型數據在內存中的存儲一小數的二進制十進制轉二進制整數部分與整數原理相同,按照整數二進制轉換的規則,寫成對應的二進制數。全為表示浮點數的最大值或者最小值。
整數部分: 與整數原理相同,按照整數二進制轉換的規則,寫成對應的二進制數。
小數部分: 十進制小數轉換成二進制小數采用乘2取整,順序排列法。具體做法是:用2乘以十進制地小數,將積的整數部分取出,作為十分位,再用2乘以剩下的小數部分,再將積的整數部分取出作百分位,重復進行,直到達到要求的精度。
例如:將十進制1.8125轉換成二進制
所以1.8125的二進制為1.1101。
把二進制數寫成加權系數展開形式,按十進制的加法規則求和,即按權相加。
例如:將二進制數1.1101轉換為十進制
根據國際標準IEEE(電氣和電子工程協會) 754,任意一個二進制浮點數V可以表示成下面的形式:
IEEE 754規定: 對于32位的浮點數,最高的1位是符號位s,接著的8位是指數E,剩下的23位為有效數字M。
如圖表示float型在內存中的存儲:
S的存儲較為簡單,只有1和0兩種情況:
對于float型,E共有個比特8位,可表示范圍 0~255,存入數據時,加上中間數127,這樣做可以便可以表示負數,所以實際可保存數據范圍為[-127 ,128]。例如:101.1101科學計數法表示為(-1)^0 * 1.011101* 2^6,E為6,內存中放6+127=133的二進制序列,取出時同理減123即可。
在保存M時,默認這個數的第一位是1,因此可以被舍去,只保存后面的xxxxxx部分。比如保存1.01的時候,只保存01,等到讀取的時候,再把第一位的1加上去。這樣做的目的,是節省1位有效數字。以32位浮點數為例,留給M只有23位,將第一位的1舍去以后,等于可以保存24位有效數字。
IEEE 754規定:對于64位的浮點數,最高的1位是符號位S,接著的11位是指數E,剩下的52位為有效數字M。
雙精度浮點型與單精度浮點型存儲原理基本類似,不再詳細敘述,區別是
E全為0
E全為0時,浮點E的真實值為0-127(或者0-1023),表示一個接近于0的很小的浮點數,還原時有效數字M不加省略的1。
所以浮點數不能直接比較大小,要考慮進制轉換時存在的誤差,不能用’==’。
E全為1
表示浮點數的最大值或者最小值。
#include #include int 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
摘要:在符號位中,表示正,表示負。我們知道對于整型來說,內存中存放的是該數的補碼。在計算機系統中,數值一律用補碼來表示和存儲。表示有效數字,。規定對于位的浮點數,最高的位是 ...
摘要:的理解和區別代表有符號,整數在內存中存儲的二進制位的最高位為符號位,表示負數,表示正數。那接下來我們來學習數據在所開辟的內存空間時如何存儲的。請看下面例子為什么內存中存儲的是補碼對于整數來說數據存放內存中其實存放的是補碼。 ...
摘要:還不清楚原碼反碼補碼的可以到語言從入門到入土操作符篇中的移位操作符處學習一下。比如原碼反碼補碼原碼顯示值補碼數據存放內存中其實存放的是補碼補碼的表示與存儲在計算機系統中,數值一律用補碼來表示和存儲。 ...
摘要:數據的存儲前言數據類型匯總整型家族浮點型家族自定義類型指針類型。整型家族注在之后的標準規定,將類型數據劃分為整型家族,因為字符在內存中會將其轉化為碼值進行存儲。 ...
摘要:所有這些類型,在內部統一用一個叫做的結構表示,在源代碼中這個結構名稱為。的具體定義在源代碼的文件中,下面是相關代碼的摘錄。 【轉】淺談PHP5中垃圾回收算法(Garbage Collection)的演化 前言 PHP是一門托管型語言,在PHP編程中程序員不需要手工處理內存資源的分配與釋放(使用C編寫PHP或Zend擴展除外),這就意味著PHP本身實現了垃圾回收機制(Garbage C...
閱讀 1104·2021-11-16 11:45
閱讀 3124·2021-10-13 09:40
閱讀 714·2019-08-26 13:45
閱讀 1188·2019-08-26 13:32
閱讀 2167·2019-08-26 13:23
閱讀 911·2019-08-26 12:16
閱讀 2823·2019-08-26 11:37
閱讀 1747·2019-08-26 10:32