回复:S7-300中双整数转换为整数的问题。

未尽

  • 帖子

    878
  • 精华

    6
  • 被关注

    7

论坛等级:侠士

注册时间:2006-04-11

普通 普通 如何晋级?

发布于 2006-08-15 11:26:48

0楼

受教,不过不明白,为什么不会丢失符号位?..
======================================
要说到为什么不会丢失符号位?也简单,也复杂!
首先,我们要弄清楚PLC是如何存储单整和双整的.在PLC中,单整占用一个字的空间来存储.其中第零至第14位为数值,第15位为符号位."0"为正整数,"1"为负整数.值得注意的是,负数是以二进制补码存储的,即将二进制各位取反在加1;双整的存储道理与单整相似,只不过符号位变成第31位.
在双整中取单整时,我们有必要记住shine斑着重注释的"只要MD0的值在-32768~32767之间",也就是说,在这个MD0中,我们只使用了0-14位.如果这个数是正数,则15以后均为0,这时,读MW2刚好取到的是0-15位,不正好是单正整数吗?如果这个数是负数,则15以后均应为1(补码啊),取出0-15位后,那么第15位为"1",表示是负数,而0-14位为补码,一还原,不就是一个负的单整吗?如果还不明白,请看例子:
L#15存储在MD0中的二进制表示:
2#0000_0000_0000_0000_0000_0000_0000_1111
L#-15存储在MD0中的二进制表示(补码):
2#1111_1111_1111_1111_1111_1111_1111_0001
MD0存L#15时,MW2的二进制表示:
2#0000_0000_0000_1111
MD0存L#-15时,MW2的二进制表示(是补码):
2#1111_1111_1111_0001



好好生活,天天向上!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54756条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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