回复:西门子的浮点数处理问题

sangshunyang

  • 帖子

    638
  • 精华

    4
  • 被关注

    39

论坛等级:侠圣

注册时间:2017-02-14

黄金 黄金 如何晋级?

发布于 2018-10-21 23:50:23

3楼

实际上浮点数加是进行的2进制的加,先把小数以小数点位位置为分界,分别转换成二进制,小数点前的转换

按除2取余反向排序,小数后是乘2取整顺序排列。如:(173.8125)10=(10101101.1101)2

 (0.004)=(.0001100011000110001100011000)2  因为循环可以无限写下去  32位浮点速度小数位是23位,计算机就取23位。 实际上无限循环下去才能保证是真正的0.004,这就是这个二进制数只能说是个接近值。

浮点数的真正意义是说小数点可以浮动是按二进制来讲的 拿(173.8125)10=(10101101.1101)2来讲

可以写成(1010110.11101*)2^2, (101011.011101*)2^3 , (10101.1011101*)2^4 ----------这里的2 3 4就是浮点数的指数,二进制有一个约定,及小数点前面一位必须为 1且把它省去,相当于用23来表示24位数。

另外浮点的加法是 先保证指数相同小数部分进行相加,这时候是浮点数的指数开始发生变化,应为要保证指数同,同时小数点位置也发生变化。这就有可能把一部分数据全部移除,相当于与23个零相加等于加一个零。

   

             

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9430条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。