kongdezheng
級別: *
|
新手請教: 浮點四則運算時怎么回事? 在仿真軟件用 DEDIV K63 K10 D0 運算結(jié)果D0的數(shù)據(jù)為6.3 此時D1的數(shù)據(jù)為16585 我想知道D1的數(shù)據(jù)是怎么得到的? 編程手冊上面沒有浮點解釋呀 請前輩師傅們幫忙解答一下 萬分感激 謝謝 |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
在樓上的基礎(chǔ)上提醒你一下: 首先要看看浮點數(shù)在PLC是如何保存的;將浮點數(shù)拆解成10進制數(shù),然后看看是否能夠得到你看到的這個結(jié)果~ |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
浮點的運算比較麻煩,你可以“百度”或者“谷歌”一下。 它的格式是:【符號位】(1位)+【指數(shù)位】(8位)+【尾數(shù)位】(23位)共計組成32位的浮點數(shù)。 符號位用0、1表示正負; 指數(shù)位是將十進制轉(zhuǎn)化為二進制后,再用科學法表示(將小數(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。 |
---|---|
|