我想将我的配置标头的某一位设置为1(字节10的第3位),如果它还不是1.然后我想保存这个新的配置标头作为我的旧配置标头。我可以设置好一点,但是我很难用新的替换旧字节来更新我的配置头。我希望我的新配置头是ConfigHeader = [128; 0; 0; 0; 0; 0; 0; 0; 0; 0; 30];。我知道这可能是一个非常简单的解决方案!!
ConfigHeader = [128;0;0;0;0;0;0;0;0;0;26];
ByteTen = ConfigHeader(11);
if bitget(ByteTen,3) == 0
% Set bit 3 of byte 10 to 1
bitset(ByteTen,3);
% Replace old config header with new one (bit changed to 1)
ConfigHeader = ??????
end
答案 0 :(得分:1)
我不习惯位操作,但是从代码开始,下一个逻辑步骤是:
ConfigHeader(11) = ByteTen
也许您的整个代码甚至可以简化为:
bitset(ConfigHeader(11),3)
毕竟,一点只能是零或一,所以如果你总是希望以一个结束,你就不需要测试它。
答案 1 :(得分:1)
您必须将修改后的值分配回ConfigHeader,例如通过添加这一行:
ConfigHeader(11) = bitset(ByteTen,3);
这一行:
bitset(ByteTen,3);
只要你不使用它的输出,就没有任何作用。