带符号数的减法运算

在做模拟量采集的程序,为了增加稳定性而用求多次采样值的平均值。模拟输入是12位采样,计算中,如果采样次数大于16次就有可能和的长度大于一个字,故需要用双字来存储采样和。这时需要把输入转换成32位。我看了一个例程,当输入值为负值时,最高有效字增添1,当输入值为正值时,最高有效字增添0.之后就直接把输入值和原有的采样和做加法运算。我的问题是,当输入值是负值时,PLC是如何做的运算,使之可以用加法代替。我自己算了一下,比如0010110101001001+1111111101010101(前8个1代表负号),得出的值并不是我要的相减的结果。求教各位了。

问题补充:
PLC内部减法是如何做的?

最佳答案

2进制中负数是正数的补码,也就是正数的反码加1.
  比如正数是12,16位2进制为:0000_0000_0000_1100
  其反码为:1111_1111_1111_0011
  补码为反码加1:1111_1111_1111_0100
  所以-12的16位2进制为:1111111111110100
  不是仅仅把高位字替换为1那么简单,你需要学习一下最最基础的2进制知识!

 补充:PLC内部减法也是用这种方式进行加法运算的。

提问者对于答案的评价:

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

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

相关推荐

  • VD0与*VD0

    请问在VD0地址前加*号的作用及用法?VB0前面加&是代表地址指针吗? 最佳答案 VB0前加&表示地址指针。而VD0前加*表示调用VD0中的数据(地址指针)所指向的…

    SIMATIC S7-200 2021年7月5日
  • S7-200中,模拟量输入值波动太大,想求平均值。

    S7-200中,模拟量输入值波动太大,想求平均值。大家提供一下好的方法。 最佳答案 1. 论坛中的方法很多,见 10种软件滤波方法的优缺点: http…

    SIMATIC S7-200 2021年7月5日
  • 两台s7200的485通讯用什么电缆连接?

    请教一下,两个S7200连接485通讯,应该使用什么电缆?使用S7200与触摸屏连接的MPI电缆是否可以?测了一下MPI电缆有4个脚3.8.4.5是通的,我只知道接3和8,不知道4…

    SIMATIC S7-200 2017年11月2日
  • 关于modbus通讯的一点问题

    假设两个200cpu之间通讯,从站中的MBUS_INIT中的maxhold 和holdstart的作用分别是最大保持寄存器区:参与通信的V存储区字(VW) 保持…

    SIMATIC S7-200 2018年1月1日
  • S7-200 电子邮件功能

    原来的CP243-1IT模块已经停止供货了,现在好像供货的是6GK7243–1EX01–OXE0,请问这个能实现S7-200的电子邮件功能吗?如果不能够S7-200还有其它实现…

    SIMATIC S7-200 2018年3月6日
  • 200SMATER与自制的PC板通讯问题

    近期,公司有一个项目,由嵌入式开发组做一个PC板,用QT做操作界面,要与200SMATER做以太网通讯。我在网上查了几次,没有可参考资料,我也没有相关经验。我想问的就是:1、自制的…

    SIMATIC S7-200 2021年7月5日
  • 200cpu的Prodave通讯问题

    在计算机上通过Prodave函数访问226CPU中的数据,请问在计算机与CPU之间可以使用什么通讯方式?可以使用CP5611通讯卡在计算机与CPU之间通过MPI或DP通讯方式吗? …

    SIMATIC S7-200 2021年7月4日
  • PROFEBUS通讯

    我现在采用PROFIBUS对PLC和变频器进行通讯。请问我在做程序的时候要做哪些程序才能让通讯正常的运行? 问题补充:非常感谢个位的回答.假如我用S7300和变频器进行通讯采用以太…

    SIMATIC S7-200 2021年7月5日
  • EM231 4~20mA模块和EM235 4~20mA模块有什么区别?

    EM231 4~20mA模块和EM235 4~20mA模块有什么区别? 为什么拿4~20mA(经变送器输出)接到EM235模块上,可以接收到信号.&n…

    SIMATIC S7-200 2021年7月5日
  • win10不能安装step7 MICRO/WIN软件吗

    安装完程序可以上下载,但不能运行/监控。点击运行报错显示无法建立连接,怎么解决呀 问题补充:虚拟机win7也是一样压,还有什么办法 钻石用户推荐最佳答案 1、官方给出的是支持win…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论