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 端口以 MODBUS議把內(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;以下類(lèi)推,直到最后兩位 CRC E8; 86 第一個(gè)地址:69;

2、 C0; 48; A9 是如何換算為 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 11

3、000000 小數(shù)點(diǎn)右移 18 位后得 10101001 01101001 110.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è)典型的例子,如果你想深入了解 IE

4、EE754標(biāo)準(zhǔn),我想本文并不太 適合您。 :預(yù)備知識(shí) 值 存儲(chǔ)為 指數(shù)偏移量 real*4 1位符號(hào)位(s)、 8位指數(shù)(e) , 23位尾數(shù)(m,共 32位) 127(7FH) real*8 1位符號(hào)位(s)、 11位指數(shù)(e) , 52位尾數(shù)(m,共 64位)1023(3FFH) real*10 1位符號(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-12

5、7=-126 即, 在 real*4 時(shí): V=(-1)As*2A(-126)*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: 0 x00280000 (real*4 ) 轉(zhuǎn)換成二進(jìn)制 00000000001010000000000000000000 符號(hào)位

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

7、位)尾數(shù)部分 1 10000000100 1110000000000000000000000000000000000000000000000000 符號(hào)位=1;指數(shù)=1028,因指數(shù)部分不為全0且不為全1,則:尾數(shù)部分 M為 1+m 1.1110000000000000000000000000000000000000000000000000=1.875 該浮點(diǎn)數(shù)的十進(jìn)制為: (-1)A1*2A(1028-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

8、計(jì)算指數(shù) 4+127=131 符號(hào)位指數(shù)部分尾數(shù)部分 0 10000011 10100000000000000000000 以單精度(real*4 )浮點(diǎn)格式存儲(chǔ)該數(shù) 0100 0001 1101 0000 0000 0000 0000 0000 0X41D0 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

9、0000 0000 0X3F40 0000 例 4.3: -2.5 十進(jìn)制-2.5轉(zhuǎn)換成二進(jìn)制 -10.1 規(guī)格化二進(jìn)制數(shù) -1.01*2人 1 計(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)行相互

10、轉(zhuǎn)換: real*4(HEX)floating point numbers(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 40 AA AA AA AA AA AA AA AA 并已知數(shù)據(jù)為 REAL*& 為了方便使用,在Input中只需輸入:4E40,而不用轉(zhuǎn)換成 404E 。單擊 REAL*8中的HEX-F-P按鍵即可在Output

11、中得到結(jié)果:60 反之亦然:在Input中輸入:60,按F-P-HEX得:4E4。補(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 整個(gè)為 10

12、000111 ;其余 7 位為-7 的絕對(duì)值+7的原 碼 0000111按位取反為 1111000 ;再加 1 ,所以-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ù),所以該位不變,仍為 “1其余 7位 1111001 取反后為 0000110 ;

13、再加 1,所以是 10000111。 在閑扯原碼、反碼、補(bǔ)碼”文件中,沒(méi)有提到一個(gè)很重要的概念 ?!?。我在這里稍微介紹一下 ?!?的概念: ?!笔侵敢粋€(gè)計(jì)量系統(tǒng)的計(jì)數(shù)范圍。如時(shí)鐘等。計(jì)算機(jī)也可以看成一個(gè)計(jì)量機(jī)器,它也有一個(gè)計(jì)量 范 圍,即都存在一個(gè)?!薄@纾?時(shí)鐘的計(jì)量范圍是 0 11,模=12。 表示 n位的計(jì)算機(jī)計(jì)量范圍是 0 2人(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í)間可有以下兩種撥法: 一種是倒撥

14、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 和 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 稱(chēng)為 100000000(9 位),但因只有 8 位,最高位 1 自然丟失。又回了 00000000,所以 8位二 進(jìn)制

15、系統(tǒng)的 模為 2A8 o在這樣的系統(tǒng)中減法問(wèn)題也可以化成加法問(wèn)題,只需把減數(shù)用相應(yīng)的補(bǔ)數(shù)表示就可以 了。把補(bǔ)數(shù)用到計(jì)算機(jī)對(duì)數(shù)的處理上,就是補(bǔ)碼。 另外兩個(gè)概念 一的補(bǔ)碼(ones complement) 指的是正數(shù)=原碼,負(fù)數(shù)=反碼 而二的補(bǔ)碼(twos complement) 指的就是通常所指的補(bǔ)碼。 這里補(bǔ)充補(bǔ)碼的代數(shù)加減運(yùn)算: 1、 補(bǔ)碼加法 X+Y補(bǔ)=兇補(bǔ)+ Y補(bǔ) 【例 71 X=+0110011,Y=-0101001 ,求X+Y補(bǔ) 兇補(bǔ)=00110011 Y補(bǔ)=11010111 X+Y補(bǔ)=兇補(bǔ) + Y補(bǔ) =00110011+11010111=00001010 注:因?yàn)橛?jì)算機(jī)中運(yùn)算器的

16、位長(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ǔ)稱(chēng)為負(fù)補(bǔ),求負(fù)補(bǔ)的方法是:對(duì)補(bǔ)碼的每一位(包括符號(hào)位)求反,最后末位加 “1。” 這里補(bǔ)充補(bǔ)碼的代數(shù)解釋?zhuān)?任何一個(gè)數(shù)都可以表示為-a=2人(n-1)-2人(n-1)-a; 這個(gè)假設(shè) a為正數(shù),那么-a就是負(fù)數(shù)。而根據(jù)二進(jìn)制轉(zhuǎn)十進(jìn)制數(shù)的方法,我們可以把 a表示為: a=k0*2人0+k1*2人1+k2*2人2+ +k(n-2)*2人(n-2) 這里 k0,k1,k2,k(n-2)是 1 或者 0,而且這里設(shè) a的二進(jìn)制位數(shù)

17、為 n位,即其模為 2人(n-1),而 2人(n-1) 其二項(xiàng)展開(kāi)是:1+2人0+2人1+2人2+2人(n -2),而式子:-a=2人(n-1)-2人(n-1)-a 中,2人(n-1)-a代入 a=k0*2人0 +k1*2人1+k2*2人2+ +k(n-2)*2人(n-2)和 2人(n-1)=1+2人0+2人1+2人2+ +2人(n -2)兩式, 2人(n-1)-a = (1-k(n-2)*2人(n-2)+(1-k(n-3)*2人(n- 3)+ +(1-k2)*2人2+(1-k1)*2人1+(1-k0)*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)論