这个是什么意思?

WORD WordValue=GetTagWord("WordTag");
 SetTagBit("MotorRun",(WordValue&0x1));
 SetTagBit("MotorFault",(WordValue&0x2));
 SetTagBit("MotorPower",(WordValue&0x4));
 其中里面的WordValue&0x4...等是什么意思呀?是把MotorPower这个bool量取Word的一个什么值?这个算法是怎么样的?请指教?

问题补充:
每个字不是分高八位和低八位的么?第一位是哪一位?是低8位的第一位么?
 还有是不是这个规律1.2.4.8.16.32.64.128...?

最佳答案

看来搂主的C还是不过关啊。
  C语言中有以下几个位操作运算符:
  参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
  与0x1与取最低位,与0x2取第二位,依次类推

 补充:假设WordTag地址为MW10 --> MB10 低字节 -> MB11高字节
 与0x1与0x1取的是MW10最右边那个位,也就是高字节的第1位
 依次类推
 

提问者对于答案的评价:
谢谢 去学习c了

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 下午12:54
下一篇 2019年6月11日 下午12:55

相关推荐