回复:为什么27648大于34123?

Zane

版主 西门子1847工业学习平台

  • 帖子

    21059
  • 精华

    399
  • 被关注

    1484

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2013-02-26 00:35:42

10楼

其实这个问题有点蹊跷,大家有没有觉得?
当然,廖老师的解答可以用来解释这个问题,但我依旧觉得有问题是楼主如何从MW166里读到34123这个值的?

如果是在程序块的在线监测,在线显示的值应该是该指令执行时累加器的值,从上述结果来看,MW166里的数显然已经是被系统认作一个负数了,那显示的也应该是个负数才对啊。

所以,我猜测楼主读到的是个16进制的读数,在用计算机转换后直接报了来,如果直接转成整数显示,就不会再有这个问题了,所以仔细想来觉得还不是WORD和INT的问题,而是楼主无意之间给大家吃的药。

结论是,无论你如何定义数据WORD也好,INT也好,运算指令如果是处理带符号数的,那就认为寄存器的数就是有符号数,所以要做大于32767的算术运算,变量长度必须是4个字节
Zane 注册自动化系统工程师 Always save before download
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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