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