浮点数的表示方法

浮点数100.56在内存中是怎样存放的。我想用PLC的编程软件监视看看

问题补充:
如。我放入VD10中100.5645.然后我查看vb0,66 
  VB1 -55 
  VB2 +33
  VB3 +7
  这都是有符号数,好像与100.5645也不挨边啊
 我用二进制看了VD0,现实的数据和100.5645也对不上啊。

最佳答案

在状态图里用二进制方式看看
 这里的浮点数是32位的,不能把字节分开看,每位的意义如下:
 s (第31位)  
 e (第30位—23位)          
 f (第22位-0位) 

 浮点=(-1)S×1.f×2e-127 (s =0,1   0≤e≤255   f<1)
 7.62=2#0100-0000-1111-0011-1101-0111-0000-1010
 -967.14=2#1100-0100-0111-0001-1100-1000-1111-0110

 实数到二进制数
 7.62=(-1)0×1.905×22  → s=0  f=0.905  e=129=2#100-0000-1
 -967.14=(-1)1×1.8889453×29   →s=1  f=0.8889453  e=136=2#100-0100-0
   ② 0.905=2#0.111-0011-1101-0111-0000-1010-0
      0.8889453=2#0.111-0001-1100-1000-1111-0101-1
      通过“乘2取整”法求二进制,取小数点后23位,若第24位为1,则进1。
 0.905→1.81→1.62→1.24→0.48→0.96→1.92→1.84→1.68→1.36→0.72→1.44→0.88
 →1.76→1.52→1.04→0.08→0.16→0.32→0.64→1.28→0.56→1.12→0.24→0.48
     
   二进制数到实数
 ①取二进制的第31位,s1=0   s2=1
 ②取二进制的第23到30位,e1=2#1000-0001=129   e2=2#1000-1000=136
 ③取二进制的第0到22位,
   f1=2-1+2-2+2-3+2-6+2-7+2-8+2-9+2-11+2-13+2-14+2-15+2-20+2-22=0.90499997138
    f2=2-1+2-2+2-3+2-7+2-8+2-9+2-12+2-16+2-17+2-18+2-19+2-21+2-22=0.8889453
  代入公式即得实数。
 

提问者对于答案的评价:
好。但是我没理解呢。我得在仔细看看。谢谢喽。咋没上QQ呢

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354354.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论