kongdezheng
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看kongdezheng的 主題 / 回貼
樓主  發(fā)表于: 2010-05-18 20:33

新手請教:  浮點四則運算時怎么回事?

在仿真軟件用   DEDIV  K63  K10  D0

運算結(jié)果D0的數(shù)據(jù)為6.3  此時D1的數(shù)據(jù)為16585

我想知道D1的數(shù)據(jù)是怎么得到的? 編程手冊上面沒有浮點解釋呀

請前輩師傅們幫忙解答一下   萬分感激

謝謝
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主

精華主題: 7 篇
發(fā)帖數(shù)量: 5212 個
工控威望: 7436 點
下載積分: 158993 分
在線時間: 3172(小時)
注冊時間: 2007-11-21
最后登錄: 2024-12-22
查看sjm213的 主題 / 回貼
1樓  發(fā)表于: 2010-05-18 23:56
在樓上的基礎(chǔ)上提醒你一下:
首先要看看浮點數(shù)在PLC是如何保存的;將浮點數(shù)拆解成10進制數(shù),然后看看是否能夠得到你看到的這個結(jié)果~
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主

精華主題: 7 篇
發(fā)帖數(shù)量: 5212 個
工控威望: 7436 點
下載積分: 158993 分
在線時間: 3172(小時)
注冊時間: 2007-11-21
最后登錄: 2024-12-22
查看sjm213的 主題 / 回貼
2樓  發(fā)表于: 2010-05-21 15:04
浮點的運算比較麻煩,你可以“百度”或者“谷歌”一下。
它的格式是:【符號位】(1位)+【指數(shù)位】(8位)+【尾數(shù)位】(23位)共計組成32位的浮點數(shù)。
符號位用0、1表示正負;
指數(shù)位是將十進制轉(zhuǎn)化為二進制后,再用科學(xué)法表示(將小數(shù)點移位到首位為1處),看指數(shù)值為多少,再加上127得到指數(shù)位的數(shù)。
尾數(shù)位則是將二進制的首個1去掉之后的數(shù)值。
對于K6.3:
符號位為0(正數(shù));
轉(zhuǎn)化為二進制為110.01001100110011001100……即1.1001001100110011001……×22
那么:指數(shù)位就是2+127=129轉(zhuǎn)為2進制為10000001;尾數(shù)位就是1001001100110011001……
所以它的浮點數(shù)在CPU中存儲為:0100 0000 1100 1001 1001 1001 1001 1001
三菱的數(shù)據(jù)寄存器儲存32位數(shù)據(jù)是按照【D1 D0】這樣的結(jié)構(gòu)來保存的,也就是D1存儲前16位,D0存儲后16位;
所以D1中的數(shù)據(jù)是0100 0000 1100 1001 -------------------現(xiàn)在把它轉(zhuǎn)為10進制,就得到了16585。