32位浮點(diǎn)數(shù)轉(zhuǎn)換為十進(jìn)制_第1頁(yè)
32位浮點(diǎn)數(shù)轉(zhuǎn)換為十進(jìn)制_第2頁(yè)
32位浮點(diǎn)數(shù)轉(zhuǎn)換為十進(jìn)制_第3頁(yè)
32位浮點(diǎn)數(shù)轉(zhuǎn)換為十進(jìn)制_第4頁(yè)
32位浮點(diǎn)數(shù)轉(zhuǎn)換為十進(jìn)制_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、流量計(jì)計(jì)算機(jī)通過(guò)485端口以MODBU協(xié)議把內(nèi)部IEEE32位浮點(diǎn)數(shù)傳送到DCS勺數(shù)據(jù)經(jīng)過(guò)研究試驗(yàn),其數(shù)據(jù)格式如下數(shù)據(jù)請(qǐng)求依次為:十六進(jìn)制從站地址:01;讀命令:03;數(shù)據(jù)起始高位地址:0F;數(shù)據(jù)起始低位地址:A0;( 0FA0=4000即 地址44001);數(shù)據(jù)長(zhǎng)度高位:00;數(shù)據(jù)長(zhǎng)度低位:28; (0028=40即40個(gè)地址);CRC效驗(yàn)碼:46,E2數(shù)據(jù)應(yīng)答格式:從站地址:01;讀命令反饋:03;數(shù)據(jù)長(zhǎng)度:50;第一個(gè)地址:69; C0; 48; A9;第二個(gè)地址:C5; 00; 48; A2;以下類推,直到最后兩位 CRC E8; 86第一個(gè)地址:69; C0; 48; A9是如何換算

2、為346958的呢?流量計(jì)發(fā)送的是IEEE標(biāo)準(zhǔn)的32位浮點(diǎn)數(shù)首先要把69; C0; 48; A9進(jìn)行高低16位交換變成:48; A9; 69; C0變?yōu)?32 位二進(jìn)制數(shù):01001000 10101001 01101001 11000000其中最高位為0,代表是正數(shù)接下來(lái)的八位:10010001變成十進(jìn)制是145,根據(jù)IEEE規(guī)范應(yīng)減去127得18,這是小數(shù)點(diǎn)右移 的位數(shù);剩下的23位是純二進(jìn)制小數(shù)即:0.0101001 01101001 11000000加 1 后得 1.0101001 01101001 11000000小數(shù)點(diǎn)右移 18 位后得 10101001 01101001 110.

3、00000變?yōu)槭M(jìn)制得346958其它地址的32位浮點(diǎn)數(shù)計(jì)算方法同上標(biāo) 題:IEEE754學(xué)習(xí)總結(jié) 發(fā)信人 : Vegeta時(shí) 間:2004-11-11,10:32 詳細(xì)信息 :一:前言二:預(yù)備知識(shí)三:將浮點(diǎn)格式轉(zhuǎn)換成十進(jìn)制數(shù) 四:將十進(jìn)制數(shù)轉(zhuǎn)換成浮點(diǎn)格式( real*4 ) 附: IEEE754 Converte 1.0 介紹、尸 、-:前言前不久在分析一個(gè)程序的過(guò)程中遇到了浮點(diǎn)運(yùn)算,也就順便學(xué)習(xí)了一下浮點(diǎn)數(shù)的存放格式( IEEE754 標(biāo)準(zhǔn)),此文僅作為總結(jié),其中舉了幾個(gè)典型的例子,如果你想深入了解 IEEE754 標(biāo)準(zhǔn),我想本文并不太 適合您。:預(yù)備知識(shí)值存儲(chǔ)為指數(shù)偏移量real*41

4、位符號(hào)位(s) 、8位指數(shù)(e) , 23位尾數(shù)(m,共32位)127(7FH)real*81 位符號(hào)位(s) 、11 位指數(shù) (e) , 52 位尾數(shù) (m, 共 64 位)1023(3FFH)real*101 位符號(hào)位(s) 、15 位指數(shù) (e) , 64 位尾數(shù) (m, 共 80 位)16383(3FFFH)計(jì)算公式:V=(-1)As*2AE*M當(dāng) e (各位)為全'0'時(shí),E=1-(2A(e (位數(shù))-1)-1) , ; M=m 如: real*4 是 8 位, E=1-(2A(8-1)-1)=1-127=-126即,在 real*4 時(shí):V=(-1)As*2A(-1

5、26)*m在 real*8 時(shí):V=(-1)As*2A(-1022)*m當(dāng)e (各位)不為全'0'且不為全'1'時(shí),E=e (值)-(2A(e (位數(shù))-1)-1) ; M=1+m 即,在 real*4 時(shí):V=(-1)As*2A(e(值) -127)*(1+m)在 real*8 時(shí):V=(-1)As*2A(e(值) -1023)*(1+m)三:將浮點(diǎn)格式轉(zhuǎn)換成十進(jìn)制數(shù)例3.1 :0x00280000( real*4 )轉(zhuǎn)換成二進(jìn)制00000000001010000000000000000000符號(hào)位 指數(shù)部分( 8 位) 尾數(shù)部分0 00000000 0101

6、0000000000000000000符號(hào)位=0;因指數(shù)部分=0,則:尾數(shù)部分 M為m0.01010000000000000000000=0.3125該浮點(diǎn)數(shù)的十進(jìn)制為:(-1)人0*2人(-126)*0.3125=3.6734198463196484624023016788195e-39例 3.2 :0xC04E000000000000( real*8 )轉(zhuǎn)換成二進(jìn)制1100000001001110000000000000000000000000000000000000000000000000符號(hào)位 指數(shù)部分( 11 位) 尾數(shù)部分1 10000000100 1110000000000000

7、000000000000000000000000000000000000符號(hào)位=1;指數(shù)=1028,因指數(shù)部分不為全'0'且不為全'1',則:尾數(shù)部分 M為1+m1.1110000000000000000000000000000000000000000000000000=1.875 該浮點(diǎn)數(shù)的十進(jìn)制為:(_1)A1*2A(i028-1023)*1.875=-60四:將十進(jìn)制數(shù)轉(zhuǎn)換成浮點(diǎn)格式( real*4 )例4.1 :26.0十進(jìn)制 26.0 轉(zhuǎn)換成二進(jìn)制11010.0規(guī)格化二進(jìn)制數(shù)1.10100*2A4計(jì)算指數(shù)4+127=131符號(hào)位 指數(shù)部分 尾數(shù)部分0

8、10000011 10100000000000000000000以單精度( real*4 )浮點(diǎn)格式存儲(chǔ)該數(shù)0100 0001 1101 0000 0000 0000 0000 00000x41D0 0000例4.2 :0.75十進(jìn)制 0.75 轉(zhuǎn)換成二進(jìn)制0.11規(guī)格化二進(jìn)制數(shù)1.1*2A-1計(jì)算指數(shù)-1+127=126符號(hào)位 指數(shù)部分 尾數(shù)部分0 01111110 10000000000000000000000 以單精度( real*4 )浮點(diǎn)格式存儲(chǔ)該數(shù) 0011 1111 0100 0000 0000 0000 0000 0000 0x3F40 0000例4.3 :-2.5十進(jìn)制 -2

9、.5 轉(zhuǎn)換成二進(jìn)制-10.1規(guī)格化二進(jìn)制數(shù)-1.01*2A1計(jì)算指數(shù)1+127=128符號(hào)位 指數(shù)部分 尾數(shù)部分1 10000000 01000000000000000000000 以單精度( real*4 )浮點(diǎn)格式存儲(chǔ)該數(shù) 1100 0000 0010 0000 0000 0000 0000 0000 0xC020 0000附: IEEE754 Converte 1.0 介紹用 IEEE754 Converte 1.0 轉(zhuǎn)換 例 3.2 的截圖IEEE754 Converter 目前可以對(duì)以下數(shù)據(jù)進(jìn)行相互轉(zhuǎn)換:real*4(HEX)v->floating point numbers(

10、DEC)real*8(HEX)<->floating point numbers(DEC)現(xiàn)舉例說(shuō)明其使用方法:在Softice 中用D命令查看內(nèi)存地址:0050C510,可得:0030:0050C510 00 00 00 00 00 00 4E 40-00 00 00 00 00 00 20 40AA AA AA AA AA AA AA AA并已知數(shù)據(jù)為REAL*&為了方便使用,在Input中只需輸入:4E40,而不用轉(zhuǎn)換成404E。單擊REAL*8中的HEX->F-P按鍵即可在Output中得到結(jié)果:60反之亦然:在Input中輸入:60,按F-P->HEX

11、得:4E4Q補(bǔ)碼補(bǔ)碼舉例1、在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來(lái)表示(存儲(chǔ))。主要原因:使用補(bǔ)碼,可以將符號(hào)位和其它位統(tǒng)一處理;同時(shí),減法也可按加法來(lái)處理。另外,兩 個(gè)用補(bǔ)碼表示的數(shù)相加時(shí),如果最高位(符號(hào)位)有進(jìn)位,則進(jìn)位被舍棄。2、補(bǔ)碼與原碼的轉(zhuǎn)換過(guò)程幾乎是相同的。數(shù)值的補(bǔ)碼表示也分兩種情況:(1)正數(shù)的補(bǔ)碼:與原碼相同。例如,+9的補(bǔ)碼是00001001。(2 )負(fù)數(shù)的補(bǔ)碼:符號(hào)位為1,其余位為該數(shù)絕對(duì)值的原碼按位取反;然后整個(gè)數(shù)加1。例如,-7的補(bǔ)碼:因?yàn)槭秦?fù)數(shù),則符號(hào)位為 “ 1整,為10000111 ;其余7位為-7的絕對(duì)值+7的原 碼0000111按位取反為1111000 ;再加1,

12、所以-7的補(bǔ)碼是11111001。已知一個(gè)數(shù)的補(bǔ)碼,求原碼的操作分兩種情況:(1)如果補(bǔ)碼的符號(hào)位為 “ 0,”表示是一個(gè)正數(shù),所以補(bǔ)碼就是該數(shù)的原碼。(2) 如果補(bǔ)碼的符號(hào)位為 “ 1,”表示是一個(gè)負(fù)數(shù),求原碼的操作可以是:符號(hào)位為1,其余各位取 反,然后再整個(gè)數(shù)加1。例如,已知一個(gè)補(bǔ)碼為11111001,則原碼是10000111 (-7):因?yàn)榉?hào)位為 “ 1,”表示是一個(gè)負(fù) 數(shù),所以該位不變,仍為 “;其余7位1111001取反后為0000110 ;再加1,所以是10000111 o 在閑扯原碼、反碼、補(bǔ)碼”文件中,沒(méi)有提到一個(gè)很重要的概念模”。我在這里稍微介紹一下 模”的概念:?!笔侵?/p>

13、一個(gè)計(jì)量系統(tǒng)的計(jì)數(shù)范圍。如時(shí)鐘等。計(jì)算機(jī)也可以看成一個(gè)計(jì)量機(jī)器,它也有一個(gè)計(jì)量范圍,即都存在一個(gè)?!?。例如:時(shí)鐘的計(jì)量范圍是011,模=12 o表示n位的計(jì)算機(jī)計(jì)量范圍是 02A(n)-1,模=2A(n)。?!睂?shí)質(zhì)上是計(jì)量器產(chǎn)生 溢出”的量,它的值在計(jì)量器上表示不出來(lái),計(jì)量器上只能表示出模的余數(shù)。任何有模的計(jì)量器,均可化減法為加法運(yùn)算。例如:假設(shè)當(dāng)前時(shí)針指向10點(diǎn),而準(zhǔn)確時(shí)間是6點(diǎn),調(diào)整時(shí)間可有以下兩種撥法:一種是倒撥4小時(shí),即:10-4=6另一種是順撥8小時(shí):10+8=12+6=6在以12模的系統(tǒng)中,力卩8和減4效果是一樣的,因此凡是減 4運(yùn)算,都可以用加8來(lái)代替。對(duì)模"而言,8和

14、4互為補(bǔ)數(shù)。實(shí)際上以12模的系統(tǒng)中,11和1,10和2,9和3,7和5,6和 6都有這個(gè)特性。共同的特點(diǎn)是兩者相加等于模。對(duì)于計(jì)算機(jī),其概念和方法完全一樣。n位計(jì)算機(jī),設(shè)n=8,所能表示的最大數(shù)是11111111 ,若再加1稱為100000000(9位),但因只有8位,最高位1自然丟失。又回了 00000000,所以8位二 進(jìn)制系統(tǒng)的模為2人8 o在這樣的系統(tǒng)中減法問(wèn)題也可以化成加法問(wèn)題,只需把減數(shù)用相應(yīng)的補(bǔ)數(shù)表示就可以 了。把補(bǔ)數(shù)用到計(jì)算機(jī)對(duì)數(shù)的處理上,就是補(bǔ)碼。另外兩個(gè)概念一的補(bǔ)碼(one's complement) 指的是正數(shù)=原碼,負(fù)數(shù)=反碼而二的補(bǔ)碼(two's co

15、mplement)指的就是通常所指的補(bǔ)碼。這里補(bǔ)充補(bǔ)碼的代數(shù)加減運(yùn)算:1、補(bǔ)碼加法X+Y補(bǔ)=X補(bǔ) + Y補(bǔ)【例 7】X=+0110011,Y=-0101001 ,求X+Y補(bǔ)X補(bǔ)=00110011 Y補(bǔ)=11010111X+Y補(bǔ)=X補(bǔ) + Y補(bǔ) =00110011+11010111=00001010注:因?yàn)橛?jì)算機(jī)中運(yùn)算器的位長(zhǎng)是固定的,上述運(yùn)算中產(chǎn)生的最高位進(jìn)位將丟掉,所以結(jié)果不是100001010,而是 00001010。2、補(bǔ)碼減法X-Y補(bǔ)=X補(bǔ)-Y補(bǔ)=X補(bǔ) + -Y補(bǔ)其中-Y補(bǔ)稱為負(fù)補(bǔ),求負(fù)補(bǔ)的方法是:對(duì)補(bǔ)碼的每一位(包括符號(hào)位)求反,最后末位加“1。這里補(bǔ)充補(bǔ)碼的代數(shù)解釋:任何一個(gè)數(shù)都可

16、以表示為-a=2A(門-1)-2人(n-1)-a;這個(gè)假設(shè)a為正數(shù),那么-a就是負(fù)數(shù)。而根據(jù)二進(jìn)制轉(zhuǎn)十進(jìn)制數(shù)的方法,我們可以把a(bǔ)表示為:a=k0*2A0+k1*2A1+k2*2A2+k( n-2)*2A( n-2)這里k0,k1,k2,k(n-2)是1或者0,而且這里設(shè)a的二進(jìn)制位數(shù)為n位,即其模為2人(n-1),而2人(n-1) 其二項(xiàng)展開(kāi)是:1+2人0+2人1+2人2+ +2A(n -2),而式子:-a=2A(n-1)-2A(n-1)-a 中,2人(n-1)-a 代入 a=k0*2A0 +k1*2A1+k2*2A2+ +k(n-2)*2人(n-2)和 2人(n-1)=1+2人0+2人1+2人2+ +2人(n -2)兩式, 2A(n-1)-a = (1-k( n-2)*2A( n-2)+(1-k( n-3)*2A( n-3)+ +(1十2)*2人2+(1十1)*2人1+(1十0)*2人0+1,而這步轉(zhuǎn)化正是取反再加1的規(guī)則的代數(shù)原理所在。因?yàn)檫@里k0,k1,k2,k3 不是0就是1,所以1 -k0,1-k1,1-k2的運(yùn)算就是二進(jìn)制下

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論