成人做爰免费视频免费看_成人a级高清视频在线观看,成人a大片在线观看,成人a大片高清在线观看,成人av在线播放,一a一级片,一级黄 中国色 片,一级黄 色蝶 片,一级黄色 片生活片

產品推薦:氣相|液相|光譜|質譜|電化學|元素分析|水分測定儀|樣品前處理|試驗機|培養箱


化工儀器網>技術中心>其他文章>正文

歡迎聯系我

有什么可以幫您? 在線咨詢

西門子代理|一級總代理

來源:潯之漫智控技術(上海)有限公司   2022年12月09日 20:53  

RND指令執行出錯的原因分析

網友ktissot在用下面3條指令將浮點數轉換為雙整數時,發現了一個神秘的現象。

L  MD0
RND     //浮點數四舍五入
T   MD4
我們知道,最大的正的雙整數是2147483647,大于這個數,RND指令轉換會出錯。
但是他的帖子說實際上能轉換的最大的浮點數不是2147483647.0,而是2147483583.0。
這一段本應正常轉換的區間轉換會出錯,為什么轉換出錯的分界點是2147483583.0,這里面隱藏了什么秘密?
這件事引起我極大的興趣,為此我用仿真做了大量的實驗,下面是我做實驗發現的更多的現象:
1.轉換出錯的情況
RND指令的幫助中說:“如果超出允許范圍,則狀態位OV和OS被置位為1。結果存在累加器1中”。“出現錯誤(使用了不能表示為32位整數的NaN或浮點數)時不執行轉換并顯示溢出。”。
下圖用程序狀態監控狀態字STATUS WORD。
大于2147483647.0時轉換出錯。
大于2147483584.0到2147483647.0這一段照理說在應該在能轉換的范圍里,但是轉換也會出錯,狀態字的OV和OS位(第4、5位)被置位為1(見下圖)。MD4中是沒有轉換的浮點數,而不是雙整數。轉換出錯的分界點是2147483584.0。

2.轉換成功的情況

小于16777215.0左右轉換結果正確。轉換成功時OV和OS為0。

小于2147483584.0到16777215.0這一段可以轉換,但是轉換有誤差。

接近2147483584.0時,最大誤差為64。

大于2147483456.0 ~ 2147483584.0時(區間范圍為128.0),轉換后得到的雙整數均為2147483520(16#7FFF FF80,見下圖)。轉換結果2147483520是區間中點的值,(2147483456 + 2147483584)/2= 2147483520。

大于2147483328.0 ~ 2147483456.0時,轉換后得到的雙整數均為2147483392(16#7FFF FF00)。

大于2147483200.0 ~ 2147483328.0時,轉換后得到的雙整數均為2147483264(16#7FFF FE80)。

經過分析,我已經找到了上述現象的原因,結果暫布,希望有興趣的網友一起來分析一下,共享解決問題的快樂。

3.轉換結果分析

大于2147483456.0 ~ 2147483584.0時轉換后得到2147483520(16#7FFF FF80)。

大于2147483328.0 ~ 2147483456.0時轉換后得到2147483392(16#7FFF FF00)。

大于2147483200.0 ~ 2147483328.0時轉換后得到2147483264(16#7FFF FE80)。

上述3個區間內部的間隔為128.0,轉換結果為區間的中點(2147483456 + 2147483584)/2= 2147483520。

所以這種轉換并不精確,最大誤差為128/2=64。


浮點數轉換為雙整數的轉換誤差的根本原因是32位浮點數和32位雙整數的有效位數的差異造成的。

浮點數由一位符號位、8位指數和尾數的小數部分(23位)組成。尾數的位數決定了浮點數的精度。尾數的整數部分為1,小數部分為23位,所以尾數的有效數字為24位。

雙整數除去一位符號位,其有效位數為31位,因此浮點數的有效位數比雙整數少7位。

2147483456.0 ~ 2147483584.0相差128.0,它們對應的整數為31位有效數字,這些浮點數輸入plc后,因為浮點數的有效位數只有24位,它們的尾數相同,對應的十六進制表示的浮點數均為16#4EFF FFFF,或2.17484e+009(注意有效尾數為十進制7位,而不是對應的整數的10位)。所以轉換為雙整數后均為2147483520。

ktissot網友說:“這就像看一片湖水一樣,你可以看到水和浪花,但是絕對看不到水分子。”由于有效位數較小,浮點數不能分辨“水分子”2147483457.0 ~ 2147483584.0,我們只能看到“浪花”2147483520(16#7FFF FF80)。

如果浮點數較小,例如小于16777215(16#FF FFFF),整數部分只有24位,轉換后就沒有上述的誤差了。在此基礎上增大,整數部分的位數越大,誤差越大。

因為有效位數相差7位,在接近雙整數最大值的區段,浮點數的尾數相差一個數時,轉換為雙整數后,相差128。2的7次方等于128。


4.轉換出錯的原因分析

為什么大于2147483584.0的數不能正確地轉換呢?請注意小于2147483648.0到大于2147483584.0這段范圍剛好是64.0(128.0的一半)。RND指令在轉換時將這段范圍的尾數四舍五入后,尾數的位加1,相當于轉換后的整數加128(16#80),由上述的16#7FFF FF80(2147483520)加16#80后變為16#8000 0000,超出了雙整數整數的允許范圍,產生了溢出,所以轉換出錯。


免責聲明

  • 凡本網注明“來源:化工儀器網”的所有作品,均為浙江興旺寶明通網絡有限公司-化工儀器網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:化工儀器網”。違反上述聲明者,本網將追究其相關法律責任。
  • 本網轉載并注明自其他來源(非化工儀器網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
  • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
企業未開通此功能
詳詢客服 : 0571-87858618
主站蜘蛛池模板: 国产又黄又爽又刺激的免费网址| 日韩欧美国产一级片| 亚洲AV久久久久久久无码| 成人国产精品一区二区免费看| 欧美一区在线播放| 欧美成人日韩在线| 精品国产乱码久久久久久青草| 国产精品视频一区国模私拍| 成人免费看片又大又黄| 北川景子av作品| 免费观看又色又爽又黄的小说校园| 杨门十二寡妇肉床艳史电影| 日韩高清中文字幕一区二区| 香蕉视频色在线| 性一交一伦一乱一A片| 亚洲欧美日韩成人综合| 欧美精品人妻在线视频| 神马影院我不卡TV在线观看| 日本无码免费久久久精品| 日韩免费A片奶头| 欧美色综合网站在线看| 亚洲中文字幕无码一去台湾| 热久久国产欧美一区二区精品| 久久久久国产精品91福利| 国产精品久久久久久亚洲影视| 欧美精品亚洲综合网| 亚洲视频久久| 91福利免费体验区| 欧美日韩三区在线| 成AV人片在线观看WWW| 午夜欧美精品久久久久久| 神马电影伦理在线观看线看| 在线高清无码欧美久章草| 午夜福利理论片高清在线| 亚洲男人天堂岛| 久久久久久久久亚洲av| 日本AAAA级毛卡片免费观看| 亚洲a级毛片| 亚洲欧美日韩中文播放| 亚洲VA中文字幕无码毛片| 51午夜精品免费视频|