版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、有關(guān)浮點數(shù)在內(nèi)存中的存儲最近想看一下C中float和double型數(shù)據(jù)在內(nèi)存中是如何表示的,找到了如下一些東東,與大家分享一下c語言中FLOAT是如何表示的?尾數(shù),階碼是如何在32位上安排的,即哪幾位是尾數(shù),哪幾位是階碼,那一位是符號位。聽說與CPU有關(guān),是真的嗎?在C里,實數(shù)(float)是用四個字節(jié)即三十二位二進制位來存儲的。其中有1位符號位,8位指數(shù)位和23位有效數(shù)字位。實際上有效數(shù)字位是24位,因為第一位有效數(shù)字總是“1”,不必
2、存儲。有效數(shù)字位是一個二進制純小數(shù)。8位指數(shù)位中第一位是符號位,這符號位和一般的符號位不同,它用“1”代表正,用”0“代表負。整個實數(shù)的符號位用“1”代表負,“0”代表正。在這存儲實數(shù)的四個字節(jié)中,將最高地址字節(jié)的最高位編號為31,最低地址字節(jié)的最低位編號為0,則實數(shù)各個部分在這32個二進制位中的分布是這樣的:31位是實數(shù)符號位,30位是指數(shù)符號位,2923是指數(shù)位,220位是有效數(shù)字位。注意第一位有效數(shù)字是不出現(xiàn)在內(nèi)存中的,它總是“1
3、”。將一個實數(shù)轉(zhuǎn)化為C實數(shù)存儲格式的步驟為:(1)先將這個實數(shù)的絕對值化為二進制格式,注意實數(shù)的整數(shù)部分和小數(shù)部分化為二進制的方法是不同的。(2)將這個二進制格式實數(shù)的小數(shù)點左移或右移n位,直到小數(shù)點移動到第一個有效數(shù)字的右邊。(3)從小數(shù)點右邊第一位開始數(shù)出二十三位數(shù)字放入第22到第0位。(4)如果實數(shù)是正的,則在第31位放入“0”,否則放入“1”。(5)如果n是左移得到的,說明指數(shù)是正的,第30位放入“1”。如果n是右移得到的或n=
4、0,則第30位放入“0”。(6)如果n是左移得到的,則將n減去一然后化為二進制,并在左邊加“0”補足七位,放入第29到第23位。如果n是右移得到的或n=0,則將n化為二進制后在左邊加“0”補足七位,再各位求反,再放入第29到第23位。將一個計算機里存儲的實數(shù)格式轉(zhuǎn)化為通常的十進制的格式的方法如下:(1)將第22位到第0位的二進制數(shù)寫出來,在最左邊補一位“1”,得到二十四位有效數(shù)字。將小數(shù)點點在最左邊那個“1”的右邊。(2)取出第29到第
5、23位所表示的值n。當30位是“0”時將n各位求反。當30位是“1”時將n增1。(3)將小數(shù)點左移n位(當30位是“0”時)或右移n位(當30位是“1”時),得到一個二進制表示的實數(shù)。(4)將這個二進制實數(shù)化為十進制,并根據(jù)第31位是“0”還是“1”加上正號或負號即可。這是IEEE短實數(shù)格式,適合X86cpu。C語言float類型浮點數(shù)的存儲方法2009041712:59#includeintmain(intargcargv[])flo
6、atp=5.1fintf=(int)(p100)printf(“%d“f)getch()return0我想要輸出510,可是機器nnd居然輸出509(竟然敢扣我工錢)。到底是whatswrong。我上看下看,左看又看,看了又看,就是發(fā)現(xiàn)不了錯誤。于是我試著把5.1改成5.5一切正常啊。搗鼓了N個小時后猜想莫非是浮點數(shù)的表示問題,于是花了很久找到浮點數(shù)的機器表示方法照著規(guī)定克隆操作了一下。(據(jù)說練過乾坤大挪移的人什么招式都可以克?。E
7、EE規(guī)定的浮點數(shù)的機器表示:32位機器的float是4字節(jié)的,共32位。第1位是符號位接著8位指數(shù)位,接著23位基數(shù)位。以5.1為例。5=101(2進制)0.1=0.0001100110011001100110011.....(無限循環(huán))所以5.1=101.000110011001100110011001100110011...5.1=1.010001100110011001100110011001100110011...2^2因為第一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浮點數(shù)加法器的設(shè)計
- 冗余浮點數(shù)系統(tǒng)設(shè)計和研究.pdf
- SAR圖像浮點數(shù)據(jù)壓縮研究.pdf
- 32位單精度浮點數(shù)的ieee表示法
- 基于浮點數(shù)的CORDIC算法的研究與設(shè)計.pdf
- 密碼安全的偽隨機浮點數(shù)發(fā)生方法研究.pdf
- 一類范圍約束的浮點數(shù)靜態(tài)分析方法.pdf
- 結(jié)合律對浮點數(shù)加法精確度影響的研究.pdf
- 專升本(計算機專業(yè)課件)計組課件浮點數(shù)的運算
- 浮點數(shù)系統(tǒng)與對數(shù)數(shù)值系統(tǒng)處理器的比較研究.pdf
- 基于FPGA的32位浮點數(shù)據(jù)FFT及IFFT的設(shè)計與實現(xiàn).pdf
- 基于浮點數(shù)字信號處理器的線路保護測控裝置的研究.pdf
- 用四個字節(jié)十六進制數(shù)表示單精度浮點數(shù).docx
- 二級指針的用法-----讀入9個雙精度浮點數(shù),放在一個貯存塊里并求積
- 對象存儲系統(tǒng)中熱點數(shù)據(jù)的研究.pdf
- 項目管理在內(nèi)存條產(chǎn)品良率改善中的應(yīng)用.pdf
- 內(nèi)存區(qū)劃分、內(nèi)存分配、常量存儲區(qū)、堆、棧、自由存儲區(qū)、全局區(qū)[c++][內(nèi)存管理]
- 改進型March算法在內(nèi)存異常檢測中的應(yīng)用.pdf
- 內(nèi)存數(shù)據(jù)庫中的存儲管理與查詢優(yōu)化.pdf
- 內(nèi)存數(shù)據(jù)庫的存儲管理.pdf
評論
0/150
提交評論