kongdezheng
級別: *
|
新手請教: 浮點四則運算時怎么回事? 在仿真軟件用 DEDIV K63 K10 D0 運算結果D0的數據為6.3 此時D1的數據為16585 我想知道D1的數據是怎么得到的? 編程手冊上面沒有浮點解釋呀 請前輩師傅們幫忙解答一下 萬分感激 謝謝 |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
在樓上的基礎上提醒你一下: 首先要看看浮點數在PLC是如何保存的;將浮點數拆解成10進制數,然后看看是否能夠得到你看到的這個結果~ |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
浮點的運算比較麻煩,你可以“百度”或者“谷歌”一下。 它的格式是:【符號位】(1位)+【指數位】(8位)+【尾數位】(23位)共計組成32位的浮點數。 符號位用0、1表示正負; 指數位是將十進制轉化為二進制后,再用科學法表示(將小數點移位到首位為1處),看指數值為多少,再加上127得到指數位的數。 尾數位則是將二進制的首個1去掉之后的數值。 對于K6.3: 符號位為0(正數); 轉化為二進制為110.01001100110011001100……即1.1001001100110011001……×22 那么:指數位就是2+127=129轉為2進制為10000001;尾數位就是1001001100110011001…… 所以它的浮點數在CPU中存儲為:0100 0000 1100 1001 1001 1001 1001 1001 三菱的數據寄存器儲存32位數據是按照【D1 D0】這樣的結構來保存的,也就是D1存儲前16位,D0存儲后16位; 所以D1中的數據是0100 0000 1100 1001 -------------------現在把它轉為10進制,就得到了16585。 |
---|---|
|