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