回复:累计流量的问题

yanxiao

版主

  • 帖子

    12194
  • 精华

    47
  • 被关注

    189

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2015-12-03 00:27:36

6楼

 我提一个思路,看看可行不:

1、48位无符号数,最大值为281474976710655,要转成10进制显示,就是取10的余数。但是S7200的取余指令只支持16位整数,太小了。

2、所以,先要截短这个大数,把它表示成:2814749*100000000 + 76710655,也就是把大数先除10^8,获得整数和余数,整数最大2814749,是个22位,余数则不大于10^8。

3、没有办法,这种除法操作,只能用最原始的移位比较+减法,就象我们普通做除法时的竖式。最多移位比较的次数为22次。

4、好,已经拆成两个较小的大数了,再继续分。2814749=281*10000 + 4749, 76710655=7671*10000 + 0655。这个计算可以用32位整数指令了。

5、最终获得4个小于10000的数,一一用DIV指令拆解成10进制个位数。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33274条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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