找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
西门子 PLC 系统的单整数即16 位二进制整数的取值范围为 -32768 到 +32767。
其中:最高位是符号位,符号位为 0,则为正整数;符号位为 1,则表示这个数是一个负数,而负数存储时是以补码存储的,负整数的补码在用整数方式监视时,系统会将补码换算成真值。
因为正整数的原码 = 其反码 = 其补码,并且就是其本身,而负整数的补码与原码表示方式是不同的。所以我们可以认为整数在西门子的 PLC 系统中就是以补码的形式存储的。
关于这方面的内容,可以百度一下码制方面的内容去了解一下。
现在来解析你所看到的。
原强制值为 2# 1001 0001 0001 0000,它最高位为 1,则是一个负数,至于是多大的负数,则要按负数的补码求真值的方法来算。 求的过程如下:
负数补码: 2# 1001 0001 0001 0000
减1得 2# 1001 0001 0000 1111
按位取反 2# 0110 1110 1111 0000
将最后得到的二进制码转换为十进制就是 28400,加上符号,则为 -28400,就是你程序中监视到的值。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!