W#16#FF和W#16#FF00

1,
L DB1.DBW0         //  1.7…………0.0     00000000 00000000
A  W#16#FF          //  W#16#FF与上面“00000000 00000000”如何对应,                  与高有效字节相与还是低有效字节相与   ,麻烦使用2进制表示一下
   

2,
下面是W#16#FF00

L DB1.DBW0         //  1.7…………0.0        00000000 00000000
A  W#16#FF00          //  W#16#FF00与上面如何对应,                与高字相与还是低字相与   麻烦使用2进制表示一下
         
3,
和   W#16#FF00   相与的意义是?

最佳答案

首先你的指令 “A  W#16#FF”是错误的,A是逻辑运算指令,W#16#FF是WORD数据类型,不匹配的。
如果作为“字与”指令要写为"AW  W#16#FF"。
1、
按照更改后的指令结果应该是这样的
L DB1.DBW0       //假设值为         2#0010 1000 1010 0101 
AW  W#16#FF     //转换2进制为    2#0000 0000 1111 1111     此指令等同于AW  W#16#00FF
结果为                                         2#0000 0000 1010 0101

这个结果不难看出,字与的目的是使值的高8位为0,低8位不变。
2、
下面的指令就不详细说了,和上面的指令相反,使值的低8位为0,高8位不变。


补充一点:由于字格式有2个字节组成,排位的顺序是低字节在前,高字节在后。
就你的DB1.DBW0而言,最高位是DB1.DBX0.7,最低位是DB1.DBX1.0。这点很重要!

提问者对于答案的评价:
好,谢谢

专家置评

已阅,最佳答案正确。

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

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

相关推荐