疑惑的编程问题

有一段程序是这样的,在线监控程序,在上一段中MW538的值为65395,而在下一段中MW538的值却为-141,谁能告诉我这是为什么???

问题补充:
我看了一下,MW538在这两段程序中间没有被赋值及运算,也没有使用 GO TO

图片说明:

疑惑的编程问题    疑惑的编程问题   

最佳答案

MW538在两段程序中被当作不同数据类型的数据来使用,因此显示的值不同。
在图一中,MW538是当作双整型数据(32位)来操作的,65395在其取值范围内,二进制格式为1111 1111 0111 0011。
而在图二中,MW538是被当作整型数据(16)位来操作的,取值范围是-32768到32767,65395超出32767的范围,被显示为负数(实际上是第十六位被当作符号位处理了)-141,你可以用计算器转换一下看看,二进制格式还是1111 1111 0111 0011。

提问者对于答案的评价:
h

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐